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, так как он дублирует файл CTestTest.xml. -
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/latest/command/ctest_test.html