ctest_test
Выполнить шаг теста CTest как клиент панели мониторинга.
ctest_test([BUILD <build-dir>] [APPEND]
[START <start-number>]
[END <end-number>]
[STRIDE <stride-number>]
[EXCLUDE <exclude-regex>]
[INCLUDE <include-regex>]
[EXCLUDE_LABEL <label-exclude-regex>]
[INCLUDE_LABEL <label-include-regex>]
[EXCLUDE_FROM_FILE <filename>]
[INCLUDE_FROM_FILE <filename>]
[EXCLUDE_FIXTURE <regex>]
[EXCLUDE_FIXTURE_SETUP <regex>]
[EXCLUDE_FIXTURE_CLEANUP <regex>]
[PARALLEL_LEVEL [<level>]]
[RESOURCE_SPEC_FILE <file>]
[TEST_LOAD <threshold>]
[SCHEDULE_RANDOM <ON|OFF>]
[STOP_ON_FAILURE]
[STOP_TIME <time-of-day>]
[RETURN_VALUE <result-var>]
[CAPTURE_CMAKE_ERROR <result-var>]
[REPEAT <mode>:<n>]
[OUTPUT_JUNIT <file>]
[QUIET]
)
Запустить тесты в дереве сборки проекта и сохранить результаты в Test.xml для отправки с помощью команды ctest_submit().
Доступны следующие параметры:
-
BUILD <build-dir> -
Укажите директорию верхнего уровня сборки. Если не указано, используется переменная
CTEST_BINARY_DIRECTORY. -
APPEND -
Отметить
Test.xmlдля добавления к результатам, ранее отправленным на сервер панели мониторинга с момента последнего вызоваctest_start(). Семантика добавления определяется используемым сервером панели мониторинга. Это не приводит к добавлению результатов к файлу.xml, созданному предыдущим вызовом этой команды. -
START <start-number> -
Укажите начало диапазона номеров тестов.
-
END <end-number> -
Укажите конец диапазона номеров тестов.
-
STRIDE <stride-number> -
Укажите шаг для перехода по диапазону номеров тестов.
-
EXCLUDE <exclude-regex> -
Укажите регулярное выражение для исключения имен тестов.
-
INCLUDE <include-regex> -
Укажите регулярное выражение для включения имен тестов. Тесты, не соответствующие этому выражению, исключаются.
-
EXCLUDE_LABEL <label-exclude-regex> -
Укажите регулярное выражение для исключения тегов тестов.
-
INCLUDE_LABEL <label-include-regex> -
Укажите регулярное выражение для включения тегов тестов. Тесты, не соответствующие этому выражению, исключаются.
-
EXCLUDE_FROM_FILE <filename> -
Новое в версии 3.29.
НЕ запускать тесты, перечисленные с их точным именем в заданном файле.
-
INCLUDE_FROM_FILE <filename> -
Новое в версии 3.29.
Запустить только тесты, перечисленные с их точным именем в заданном файле.
-
EXCLUDE_FIXTURE <regex> -
Новое в версии 3.7.
Если тесту в наборе выполняемых тестов требуется определенный фикстур, тесты настройки и очистки фикстуры обычно добавляются в набор тестов автоматически. Этот параметр предотвращает добавление тестов настройки или очистки для фикстур, соответствующих
<regex>. Обратите внимание, что все остальные функции фикстуры сохраняются, включая зависимости тестов и пропуск тестов, у которых есть тесты настройки фикстуры, завершившиеся ошибкой. -
EXCLUDE_FIXTURE_SETUP <regex> -
Новое в версии 3.7.
То же, что и
EXCLUDE_FIXTURE, но исключаются только соответствующие тесты настройки. -
EXCLUDE_FIXTURE_CLEANUP <regex> -
Новое в версии 3.7.
То же, что и
EXCLUDE_FIXTURE, но исключаются только соответствующие тесты очистки. -
PARALLEL_LEVEL [<level>] -
Запустить тесты параллельно, ограничив уровень параллелизма.
Новое в версии 3.29: Параметр
<level>может быть опущен, или0, чтобы позволить ctest использовать уровень параллелизма по умолчанию или неограниченный параллелизм соответственно, как описано в параметреctest --parallel. -
RESOURCE_SPEC_FILE <file> -
Новое в версии 3.16.
Укажите файл спецификации ресурсов. Дополнительная информация в разделе Распределение ресурсов.
-
TEST_LOAD <threshold> -
Новое в версии 3.4.
При запуске тестов параллельно, старайтесь не запускать тесты, которые могут привести к превышению заданного порога нагрузки ЦП. Если не указано, будет проверяться переменная
CTEST_TEST_LOAD, а затем аргумент командной строки--test-loadдля командыctest(1). Также см. настройкуTestLoadв шаге теста CTest. -
REPEAT <mode>:<n> -
Новое в версии 3.17.
Повторить тесты на основе заданного
<mode>до<n>раз. Режимы:-
UNTIL_FAIL -
Требуется, чтобы каждый тест выполнялся
<n>раз без ошибок, чтобы считаться пройденным. Это полезно для выявления случайных ошибок в тестовых случаях. -
UNTIL_PASS -
Разрешить каждому тесту выполняться до
<n>раз, чтобы считаться пройденным. Повторяет тесты, если они завершились ошибкой по любой причине. Это полезно для допуска случайных ошибок в тестовых случаях. -
AFTER_TIMEOUT -
Разрешить каждому тесту выполняться до
<n>раз, чтобы считаться пройденным. Повторяет тесты только если произошла ошибка по таймауту. Это полезно для допуска случайных таймаутов в тестовых случаях на загруженных машинах.
-
-
SCHEDULE_RANDOM <ON|OFF> -
Запустить тесты в случайном порядке. Это может быть полезно для обнаружения неявных зависимостей между тестами.
-
STOP_ON_FAILURE -
Новое в версии 3.18.
Остановить выполнение тестов, как только один из них завершится ошибкой.
-
STOP_TIME <time-of-day> -
Указать время суток, когда тесты должны остановиться.
-
RETURN_VALUE <result-var> -
Сохранить в переменной
<result-var>значение0, если все тесты пройдены. Сохранить ненулевое значение, если что-то пошло не так. -
CAPTURE_CMAKE_ERROR <result-var> -
Новое в версии 3.7.
Сохранить в переменной
<result-var>значение -1, если при выполнении команды возникли ошибки, и предотвратить возврат ненулевого значения ctest в случае возникновения ошибки. -
OUTPUT_JUNIT <file> -
Новое в версии 3.21.
Записать результаты тестов в
<file>в формате JUnit XML. Если<file>— относительный путь, он будет помещён в директорию сборки. Если<file>уже существует, он будет перезаписан. Обратите внимание, что результирующий файл JUnit XML не загружается в CDash, потому что это избыточно с файломTest.xmlCTest. -
QUIET -
Новое в версии 3.3.
Подавить любые сообщения CTest, не относящиеся к ошибкам, которые в противном случае были бы напечатаны в консоль. Вывод от команды теста, лежащего в основе, не затрагивается. Сводная информация, описывающая процент прохождения тестов, также не изменяется параметром
QUIET.
См. также переменные CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE, CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE и CTEST_CUSTOM_TEST_OUTPUT_TRUNCATION, а также соответствующие параметры командной строки ctest(1) --test-output-size-passed, --test-output-size-failed и --test-output-truncation.
Дополнительные измерения тестов
CTest может анализировать вывод ваших тестов для отчётности дополнительных показателей в CDash.
При запуске как клиент панели мониторинга, CTest включит эти пользовательские измерения в файл Test.xml , который загружается в CDash.
См. документацию CDash по измерениям тестов для получения дополнительной информации о типах измерений тестов, распознаваемых CDash.
Следующий пример демонстрирует, как выводить различные пользовательские измерения тестов.
std::cout << "<CTestMeasurement type=\"numeric/double\" name=\"score\">28.3</CTestMeasurement>" << std::endl; std::cout << "<CTestMeasurement type=\"text/string\" name=\"color\">red</CTestMeasurement>" << std::endl; std::cout << "<CTestMeasurement type=\"text/link\" name=\"CMake URL\">https://cmake.org</CTestMeasurement>" << std::endl; std::cout << "<CTestMeasurement type=\"text/preformatted\" name=\"Console Output\">" << "line 1.\n" << " \033[31;1m line 2. Bold red, and indented!\033[0;0ml\n" << "line 3. Not bold or indented...\n" << "</CTestMeasurement>" << std::endl;
Измерения изображений
Следующий пример демонстрирует, как загружать изображения тестов в CDash.
std::cout << "<CTestMeasurementFile type=\"image/jpg\" name=\"TestImage\">" << "/dir/to/test_img.jpg</CTestMeasurementFile>" << std::endl; std::cout << "<CTestMeasurementFile type=\"image/gif\" name=\"ValidImage\">" << "/dir/to/valid_img.gif</CTestMeasurementFile>" << std::endl; std::cout << "<CTestMeasurementFile type=\"image/png\" name=\"AlgoResult\">" << "/dir/to/img.png</CTestMeasurementFile>" << std::endl;
Изображения будут отображаться вместе в режиме интерактивного сравнения в CDash, если они предоставлены с двумя или более из следующих имен.
TestImageValidImageBaselineImageDifferenceImage2
По соглашению, TestImage — это изображение, созданное вашим тестом, а ValidImage (или BaselineImage ) — основа для сравнения, используемая для определения того, прошёл ли тест или нет.
Если используется другое имя изображения, CDash отобразит его как статическое изображение отдельно от пользовательского интерфейса интерактивного сравнения.
Прикрепленные файлы
Новое в версии 3.21.
Следующий пример демонстрирует, как загружать файлы, не являющиеся изображениями, в CDash.
std::cout << "<CTestMeasurementFile type=\"file\" name=\"TestInputData1\">" << "/dir/to/data1.csv</CTestMeasurementFile>\n" << "<CTestMeasurementFile type=\"file\" name=\"TestInputData2\">" << "/dir/to/data2.csv</CTestMeasurementFile>" << std::endl;
Если имя загружаемого файла известно на стадии конфигурации, вы можете использовать свойства теста ATTACHED_FILES или ATTACHED_FILES_ON_FAIL вместо этого.
Пользовательские данные
Новое в версии 3.21.
Следующий пример демонстрирует, как указать пользовательское значение для поля Test Details, отображаемого в CDash.
std::cout << "<CTestDetails>My Custom Details Value</CTestDetails>" << std::endl;
Дополнительные метки
Новое в версии 3.22.
Следующий пример демонстрирует, как добавить дополнительные метки к тесту во время выполнения.
std::cout << "<CTestLabel>Custom Label 1</CTestLabel>\n" << "<CTestLabel>Custom Label 2</CTestLabel>" << std::endl;
Для меток, которые могут быть определены на стадии конфигурации, используйте свойство теста LABELS вместо этого.
© 2000–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.30/command/ctest_test.html