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.xmlCTest. -
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, если они предоставлены с двумя или более из следующих имён.
TestImageValidImageBaselineImageDifferenceImage2
По соглашению, 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