Spec-Zone.ru › CMake 3.26

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> уже существует, он будет перезаписан. Обратите внимание, что полученный XML-файл JUnit не загружается в 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–2023 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.26/command/ctest_test.html

Spec-Zone.ru

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