Spec-Zone.ru › CMake 3.7

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

Spec-Zone.ru

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