Spec-Zone.ru › CMake 3.29

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.xml CTest.

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, если они будут предоставлены с двумя или более из следующих имён.

  • TestImage
  • ValidImage
  • BaselineImage
  • DifferenceImage2

По умолчанию, 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API