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, чтобы найти их из целевого исполняемого файла
Однако обратите внимание, что эта макрокоманда замедлит ваши тесты, выполняя исполняемый файл для каждого теста и фикстуры теста. Вам также придется заново выполнить CMake после добавления или удаления тестов или фикстур тестов.
Пример использования:
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.5/module/FindGTest.html