Spec-Zone.ru › CMake 3.24

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.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–2022 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.24/command/ctest_test.html

Spec-Zone.ru

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