Spec-Zone.ru › CMake 3.22

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 может анализировать вывод ваших тестов, чтобы получить дополнительные измерения для отчёта в 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–2021 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.22/command/ctest_test.html

Spec-Zone.ru

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