Spec-Zone.ru › CMake 3.31

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_FROM_FILE <filename>]
           [INCLUDE_FROM_FILE <filename>]
           [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_FROM_FILE <filename>

Добавлен в версии 3.29.

НЕ запускайте тесты, чьи имена точно указаны в данном файле.

INCLUDE_FROM_FILE <filename>

Добавлен в версии 3.29.

Запустить только те тесты, чьи имена точно указаны в данном файле.

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>]

Запустить тесты параллельно, ограничив уровень параллелизма.

Добавлен в версии 3.29: Можно опустить <level>, или 0, чтобы ctest использовал значение по умолчанию или неограниченный уровень параллелизма соответственно, как описано в параметре ctest --parallel.

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

Spec-Zone.ru

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