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.12/command/add_test.html