FindGTest
Поиск фреймворка Google C++ Testing.
Импортированные цели
Этот модуль определяет следующие 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.6/module/FindGTest.html