FindGTest
Расположение фреймворка Google C++ для тестирования.
Импортированные цели
Этот модуль определяет следующие 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 эта переменная может быть установлена в
MTилиMD(по умолчанию) для включения поиска в дереве сборки 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.8/module/FindGTest.html