Spec-Zone.ru › CMake 3.27

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 в https://github.com/Kitware/CDash/blob/master/docs/test_measurements.md для получения дополнительной информации о типах измерений тестов, распознаваемых 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–2024 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.27/command/ctest_test.html

Spec-Zone.ru

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