FindGTest
Определение расположения Google C++ Testing Framework.
Импортированные цели
Этот модуль определяет следующие IMPORTED цели:
-
GTest::GTest - Библиотека Google Test
gtest, если найдена; автоматически добавляет Thread::Thread -
GTest::Main - Библиотека Google Test
gtest_main, если найдена
Переменные результатов
Этот модуль установит следующие переменные в вашем проекте:
-
GTEST_FOUND - Фреймворк Google Testing найден
-
GTEST_INCLUDE_DIRS - Директория, содержащая заголовки Google Test
Нижеприведенные переменные библиотеки устанавливаются как обычные переменные. Они содержат ключевые слова debug/optimized, когда найдена отладочная библиотека.
-
GTEST_LIBRARIES - Библиотека Google Test
gtest; обратите внимание, что она также требует привязки к соответствующей библиотеке потоков -
GTEST_MAIN_LIBRARIES - Библиотека Google Test
gtest_main -
GTEST_BOTH_LIBRARIES - И
gtest, иgtest_main
Переменные кэша
Также могут быть установлены следующие переменные кэша:
-
GTEST_ROOT - Корневая директория установки Google Test (также может быть установлена как переменная окружения)
-
GTEST_MSVC_SEARCH - При компиляции с MSVC эту переменную можно установить в
MDилиMT(по умолчанию), чтобы включить поиск в дереве сборки GTest
Пример использования
enable_testing() find_package(GTest REQUIRED) add_executable(foo foo.cc) target_link_libraries(foo GTest::GTest GTest::Main) add_test(AllTestsInFoo foo)
Более глубокая интеграция с CTest
Если вы хотите, чтобы каждый Google тест отображался в CTest как тест, вы можете использовать следующий макрос:
GTEST_ADD_TESTS(executable extra_args files...)
-
executable - путь к исполняемому файлу теста
-
extra_args - список дополнительных аргументов, которые нужно передать исполняемому файлу, заключенные в кавычки (или
""для отсутствия) -
files... - список исходных файлов для поиска тестов и фикстур. Или
AUTO, чтобы найти их из целевого исполняемого файла
Однако имейте в виду, что этот макрос замедлит ваши тесты, так как для каждого теста и фикстуры будет запущен исполняемый файл.
Пример использования:
set(FooTestArgs --foo 1 --bar 2)
add_executable(FooTest FooUnitTest.cc)
GTEST_ADD_TESTS(FooTest "${FooTestArgs}" AUTO)
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.7/module/FindGTest.html