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_FAIL равно true. Вывод, записанный в 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.30/command/add_test.html