add_test
Добавить тест в проект для выполнения ctest(1).
add_test(NAME <name> COMMAND <command> [<arg>...]
[CONFIGURATIONS <config>...]
[WORKING_DIRECTORY <dir>])
Добавить тест с именем <name>. Имя теста не должно содержать пробелов, кавычек или других символов, являющихся специальными в синтаксисе CMake. Доступны следующие опции:
-
COMMAND - Указать командную строку для теста. Если
<command>указывает исполняемый целевой объект (созданный с помощьюadd_executable()), он будет автоматически заменён расположением создаваемого исполняемого файла во время сборки. -
CONFIGURATIONS - Ограничить выполнение теста только указанными конфигурациями.
-
WORKING_DIRECTORY - Установить свойство теста
WORKING_DIRECTORY, чтобы указать рабочую директорию для выполнения теста. Если не указано, тест будет выполняться в текущей рабочей директории, соответствующей директории исходного кода.
Ожидается, что указанная командная строка теста завершится с кодом 0 для успешного выполнения и ненулевым кодом для неуспешного, или наоборот, если установлено свойство теста WILL_FAIL. Любой вывод в stdout или stderr будет захвачен ctest(1), но не повлияет на статус успешного/неуспешного выполнения, если не используется свойство PASS_REGULAR_EXPRESSION или FAIL_REGULAR_EXPRESSION теста.
Опции COMMAND и WORKING_DIRECTORY могут использовать «генераторские выражения» со синтаксисом $<...>. См. руководство cmake-generator-expressions(7) для доступных выражений.
Пример использования:
add_test(NAME mytest
COMMAND testDriver --config $<CONFIGURATION>
--exe $<TARGET_FILE:myexe>)
Это создаёт тест mytest, чья командная строка запускает инструмент testDriver, передавая имя конфигурации и полный путь к исполняемому файлу, созданному целевым объектом myexe.
Примечание
CMake будет генерировать тесты только если был вызван enable_testing(). Модуль CTest вызывает команду автоматически, если опция BUILD_TESTING установлена в ON.
add_test(<name> <command> [<arg>...])
Добавить тест с именем <name> с указанной командной строкой. В отличие от вышеприведённой подписи NAME, преобразования командной строки для поддержки имён целевых объектов или генераторских выражений не производятся.
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.13/command/add_test.html