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.29/command/ctest_test.html