Spec-Zone.ru › CMake 3.25

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

Spec-Zone.ru

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