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_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_FIXTURE <regex> -
Добавлена в версии 3.7.
Если тесту в наборе выполняемых тестов требуется определённый фикстур, тесты настройки и очистки фикстуры обычно добавляются в набор тестов автоматически. Этот параметр предотвращает добавление тестов настройки или очистки для фикстур, соответствующих
<regex>. Обратите внимание, что все остальные особенности фикстур сохраняются, включая зависимости между тестами и пропуск тестов, имеющих тесты настройки фикстуры, которые завершились неудачно. -
EXCLUDE_FIXTURE_SETUP <regex> -
Добавлена в версии 3.7.
То же, что и
EXCLUDE_FIXTUREза исключением того, что исключаются только соответствующие тесты настройки. -
EXCLUDE_FIXTURE_CLEANUP <regex> -
Добавлена в версии 3.7.
То же, что и
EXCLUDE_FIXTUREза исключением того, что исключаются только соответствующие тесты очистки. -
PARALLEL_LEVEL <level> -
Указывает положительное число, представляющее количество тестов, которые будут выполняться параллельно.
-
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–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.25/command/ctest_test.html