add_test
Добавить тест в проект, который будет выполнен ctest(1).
add_test(NAME <name> COMMAND <command> [<arg>...]
[CONFIGURATIONS <config>...]
[WORKING_DIRECTORY <dir>]
[COMMAND_EXPAND_LISTS])
Добавляет тест с именем <name>. Имя теста может содержать произвольные символы, выраженные как Цитата или Скобки, если необходимо. См. политику CMP0110.
CMake генерирует тесты только если команда enable_testing() была вызвана. Модуль CTest вызывает enable_testing автоматически, если BUILD_TESTING не установлено в OFF.
Тесты, добавленные с подписью add_test(NAME), поддерживают использование generator expressions в свойствах тестов, установленных командами set_property(TEST) или set_tests_properties(). Свойства тестов можно задавать только в каталоге, где тест создан.
Доступные add_test параметры:
-
COMMAND -
Указать командную строку для теста.
Если
<command>указывает целевой исполняемый файл, созданный с помощьюadd_executable():- Он будет автоматически заменён местоположением исполняемого файла, созданного во время сборки.
-
Новое в версии 3.3: Целевой параметр
CROSSCOMPILING_EMULATOR, если установлен, будет использован для запуска команды на хосте:<emulator> <command>
Изменено в версии 3.29: Эмулятор используется только при
cross-compiling. См. политикуCMP0158. -
Новое в версии 3.29: Целевой параметр
TEST_LAUNCHER, если установлен, будет использован для запуска команды:<launcher> <command>
Если также установлен
CROSSCOMPILING_EMULATOR, оба будут использоваться:<launcher> <emulator> <command>
Команда может быть задана с использованием
generator expressions. -
CONFIGURATIONS -
Ограничить выполнение теста только указанными конфигурациями.
-
WORKING_DIRECTORY -
Установить свойство теста
WORKING_DIRECTORY, в котором выполнять тест. Если не указано, тест будет выполнен вCMAKE_CURRENT_BINARY_DIR. Директория может быть указана с использованиемgenerator expressions. -
COMMAND_EXPAND_LISTS -
Новое в версии 3.16.
Список в
COMMANDаргументах будет расширен, включая те, что созданы сgenerator expressions.
Если команда теста завершается с кодом 0, тест проходит. ненулевой код выхода означает "сбой" теста. Свойство теста WILL_FAIL инвертирует эту логику. Обратите внимание, что системные ошибки, такие как сегментированные нарушения или ошибки кучи, всё равно приведут к сбою теста, даже если WILL_FALL истинно. Вывод, записанный в stdout или stderr, перехватывается ctest(1) и влияет только на статус пройден/не пройден через PASS_REGULAR_EXPRESSION, FAIL_REGULAR_EXPRESSION или SKIP_REGULAR_EXPRESSION свойства тестов.
Новое в версии 3.16: Добавлено свойство SKIP_REGULAR_EXPRESSION.
Пример использования:
add_test(NAME mytest
COMMAND testDriver --config $<CONFIG>
--exe $<TARGET_FILE:myexe>)
Это создаёт тест mytest, чья команда запускает инструмент testDriver, передавая имя конфигурации и полный путь к исполняемому файлу, созданному целью myexe.
Вышеприведённый синтаксис команды предпочтительнее более старой, менее гибкой формы:
add_test(<name> <command> [<arg>...])
Добавить тест под названием <name> с указанной командной строкой.
В отличие от NAME подписи выше, имена целей не поддерживаются в командной строке. Кроме того, тесты, добавленные с этой подписью, не поддерживают generator expressions в командной строке или свойствах теста.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.29/command/add_test.html