Spec-Zone.ru › CMake 3.21

ctest_test

Выполнить шаг тестирования CTest Test Step в качестве Dashboard Client.

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 Test Step.

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

Новая версия с 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 может анализировать выходные данные ваших тестов для получения дополнительных измерений, которые нужно отправить в CDash.

При запуске в качестве Dashboard Client, CTest включит эти пользовательские измерения в файл Test.xml , который загружается в CDash.

См. документацию по измерениям тестов CDash для получения дополнительной информации о типах измерений тестов, которые распознаются CDash.

Следующий пример демонстрирует, как выводить различные пользовательские измерения тестов.

std::cout <<
  "<DartMeasurement type=\"numeric/double\" name=\"score\">28.3</DartMeasurement>"
  << std::endl;

std::cout <<
  "<DartMeasurement type=\"text/string\" name=\"color\">red</DartMeasurement>"
  << std::endl;

std::cout <<
  "<DartMeasurement type=\"text/link\" name=\"CMake URL\">https://cmake.org</DartMeasurement>"
  << std::endl;

std::cout <<
  "<DartMeasurement 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" <<
  "</DartMeasurement>" << std::endl;

Измерения изображений

Следующий пример демонстрирует, как загружать тестовые изображения в CDash.

std::cout <<
  "<DartMeasurementFile type=\"image/jpg\" name=\"TestImage\">" <<
  "/dir/to/test_img.jpg</DartMeasurementFile>" << std::endl;

std::cout <<
  "<DartMeasurementFile type=\"image/gif\" name=\"ValidImage\">" <<
  "/dir/to/valid_img.gif</DartMeasurementFile>" << std::endl;

std::cout <<
  "<DartMeasurementFile type=\"image/png\" name=\"AlgoResult\"> <<
  "/dir/to/img.png</DartMeasurementFile>"
  << std::endl;

Изображения будут отображаться вместе в интерактивном режиме сравнения на CDash, если они предоставлены с двумя или более из следующих имён.

  • TestImage
  • ValidImage
  • BaselineImage
  • DifferenceImage2

По соглашению, TestImage — это изображение, сгенерированное вашим тестом, а ValidImage (или BaselineImage) — это база сравнения, используемая для определения успешности или неудачи теста.

Если используется другое имя изображения, CDash отобразит его как статическое изображение отдельно от интерактивного пользовательского интерфейса сравнения.

Прикрепленные файлы

Следующий пример демонстрирует, как загружать файлы, не являющиеся изображениями, в CDash.

std::cout <<
  "<DartMeasurementFile type=\"file\" name=\"MyTestInputData\">" <<
  "/dir/to/data.csv</DartMeasurementFile>" << std::endl;

Если имя загружаемого файла известно на этапе конфигурации, можно использовать свойства тестов ATTACHED_FILES или ATTACHED_FILES_ON_FAIL вместо этого.

Пользовательские детали

Следующий пример демонстрирует, как указать пользовательское значение для поля Test Details , отображаемого в CDash.

std::cout <<
  "<CTestDetails>My Custom Details Value</CTestDetails>" << std::endl;

© 2000–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.21/command/ctest_test.html

Spec-Zone.ru

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