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.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 в 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, если они будут предоставлены с двумя или более из следующих имен.
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.27/command/ctest_test.html