Spec-Zone.ru › CMake 3.6

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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API