ctest(1)
- Синопсис
- Описание
- Параметры
- Краткое описание метки и подпроекта
- Режим сборки и тестирования
- Клиент панели управления
- Настройка клиента панели управления
- См. также
Синопсис
ctest [<options>]
ctest <path-to-source> <path-to-build> --build-generator <generator>
[<options>...] [-- <build-options>...] [--test-command <test>]
ctest {-D <dashboard> | -M <model> -T <action> | -S <script> | -SP <script>}
[-- <dashboard-options>...]
Описание
Исполняемый файл «ctest» — это программа-драйвер тестов CMake. Деревья сборки, созданные CMake для проектов, использующих команды ENABLE_TESTING и ADD_TEST, поддерживают тестирование. Эта программа будет запускать тесты и сообщать результаты.
Параметры
-
-C <cfg>, --build-config <cfg> -
Выберите конфигурацию для тестирования.
Некоторые сгенерированные CMake деревья сборки могут содержать несколько конфигураций сборки в одном дереве. Этот параметр позволяет указать, какая конфигурация должна быть протестирована. Примерами конфигураций являются «Debug» и «Release».
-
-V,--verbose -
Включить подробный вывод тестов.
Вывод тестов обычно подавляется, и отображается только сводная информация. Этот параметр покажет весь вывод тестов.
-
-VV,--extra-verbose -
Включить более подробный вывод тестов.
Вывод тестов обычно подавляется, и отображается только сводная информация. Этот параметр покажет ещё больше вывода тестов.
-
--debug -
Отображение более подробных внутренних данных CTest.
Это приведет к большому объёму вывода, который в основном полезен для отладки проблем с панелью.
-
--output-on-failure - Вывести всё, что выведет программа теста, если тест должен завершиться неудачей. Этот параметр также можно включить, установив переменную окружения
CTEST_OUTPUT_ON_FAILURE. -
-F -
Включить резервирование.
Этот параметр позволяет CTest возобновить выполнение набора тестов, которое было прервано ранее. Если прерывание не произошло, параметр
-Fне будет иметь эффекта. -
-j <jobs>, --parallel <jobs> -
Выполнять тесты параллельно, используя заданное количество задач.
Этот параметр сообщает CTest выполнять тесты параллельно, используя заданное количество задач. Этот параметр также можно установить, установив переменную окружения
CTEST_PARALLEL_LEVEL.Этот параметр может использоваться с тестовым свойством
PROCESSORS. -
--test-load <level> -
При одновременном выполнении тестов (например, с
-j), старайтесь не запускать тесты, когда они могут привести к превышению заданного порога загрузки ЦП.Когда
ctestвыполняется как Клиент панели, это устанавливает параметрTestLoadшага тестирования CTest. -
-Q,--quiet -
Сделать CTest тихим.
Этот параметр подавит весь вывод. Файл журнала вывода всё равно будет сгенерирован, если указан
--output-log. Параметры, такие как--verbose,--extra-verbose, и--debug, игнорируются, если указан--quiet. -
-O <file>, --output-log <file> -
Вывод в файл журнала.
Этот параметр сообщает CTest записывать весь свой вывод в файл журнала.
-
-N,--show-only -
Отключить фактическое выполнение тестов.
Этот параметр сообщает CTest отобразить тесты, которые будут выполнены, но не выполнять их фактически. Полезно в сочетании с параметрами
-Rи-E. -
-L <regex>, --label-regex <regex> -
Выполнить тесты с метками, соответствующими регулярному выражению.
Этот параметр сообщает CTest выполнять только тесты, чьи метки соответствуют заданному регулярному выражению.
-
-R <regex>, --tests-regex <regex> -
Выполнить тесты, соответствующие регулярному выражению.
Этот параметр сообщает CTest выполнять только тесты, чьи имена соответствуют заданному регулярному выражению.
-
-E <regex>, --exclude-regex <regex> -
Исключить тесты, соответствующие регулярному выражению.
Этот параметр сообщает CTest НЕ выполнять тесты, чьи имена соответствуют заданному регулярному выражению.
-
-LE <regex>, --label-exclude <regex> -
Исключить тесты с метками, соответствующими регулярному выражению.
Этот параметр сообщает CTest НЕ выполнять тесты, чьи метки соответствуют заданному регулярному выражению.
-
-FA <regex>, --fixture-exclude-any <regex> -
Исключить фикстуры, соответствующие
<regex>, из автоматического добавления каких-либо тестов в набор тестов.Если тест в наборе выполняемых тестов требует определённой фикстуры, тесты настройки и очистки этой фикстуры обычно добавляются в набор тестов автоматически. Этот параметр предотвращает добавление тестов настройки или очистки для фикстур, соответствующих
<regex>. Обратите внимание, что всё остальное поведение фикстуры сохраняется, включая зависимости тестов и пропуск тестов, у которых тесты настройки фикстуры завершаются неудачей. -
-FS <regex>, --fixture-exclude-setup <regex> - То же, что
-FA, но исключаются только соответствующие тесты настройки. -
-FC <regex>, --fixture-exclude-cleanup <regex> - То же, что
-FA, но исключаются только соответствующие тесты очистки. -
-D <dashboard>, --dashboard <dashboard> -
Выполнить тестовый сценарий панели.
Этот параметр сообщает CTest действовать как клиент CDash и выполнить тестовый сценарий панели. Все тесты имеют вид <Mode><Test>, где Mode может быть Experimental, Nightly и Continuous, а Test может быть Start, Update, Configure, Build, Test, Coverage и Submit.
См. Клиент панели.
-
-D <var>:<type>=<value> -
Определить переменную для режима скрипта.
Передавать значения переменных в командной строке. Используйте в сочетании с
-Sдля передачи значений переменных в скрипт панели. Разбор-Dаргументов как значений переменных предпринимается только в том случае, если значение, следующее за-D, не соответствует ни одному из известных типов панели. -
-M <model>, --test-model <model> -
Устанавливает модель для панели.
Этот параметр сообщает CTest действовать как клиент CDash, где
<model>может бытьExperimental,Nightly, иContinuous.Сочетание
-Mи-Tаналогично-D.См. Клиент панели.
-
-T <action>, --test-action <action> -
Устанавливает действие панели.
Этот параметр сообщает CTest действовать как клиент CDash и выполнить какое-либо действие, например,
start,build,testи т.д. См. Шаги клиента панели для полного списка действий. Сочетание-Mи-Tаналогично-D.См. Клиент панели.
-
-S <script>, --script <script> -
Выполнить панель для конфигурации.
Этот параметр сообщает CTest загрузить скрипт конфигурации, который устанавливает ряд параметров, таких как двоичные и исходные каталоги. Затем CTest выполнит необходимые действия для создания и запуска панели. Этот параметр в основном настраивает панель и затем выполняет
ctest -Dс соответствующими параметрами.См. Клиент панели.
-
-SP <script>, --script-new-process <script> -
Выполнить панель для конфигурации.
Этот параметр выполняет те же действия, что и
-S, но выполняет их в отдельном процессе. Это в первую очередь полезно в тех случаях, когда скрипт может изменить среду, и вы не хотите, чтобы изменённая среда влияла на другие-Sскрипты.См. Клиент панели.
-
-I [Start,End,Stride,test#,test#|Test file], --tests-information -
Выполнить определённое количество тестов по номеру.
Этот параметр заставляет CTest выполнять тесты, начиная с номера Start, заканчивая номером End и увеличивая шаг Stride. Любые дополнительные числа после Stride рассматриваются как отдельные номера тестов. Start, End или stride могут быть пустыми. Дополнительно может быть указан файл, содержащий такой же синтаксис, как и в командной строке.
-
-U, --union -
Взять объединение
-Iи-R.Когда оба
-Rи-Iуказаны, по умолчанию выполняются пересечения тестов. Указывая-U, вместо этого выполняется объединение тестов. -
--rerun-failed -
Выполнить только тесты, которые завершились неудачей ранее.
Этот параметр сообщает CTest выполнить только тесты, которые завершились неудачей во время предыдущего выполнения. При указании этого параметра CTest игнорирует все другие параметры, предназначенные для изменения списка выполняемых тестов (
-L,-R,-E,-LE,-I, и т.д.). В случае, если CTest выполняется и ни один тест не завершается неудачей, последующие вызовы CTest с параметром--rerun-failedбудут выполнять набор тестов, которые последний раз завершились неудачей (если таковые есть). -
--repeat-until-fail <n> -
Требовать, чтобы каждый тест выполнялся
<n>раз без сбоев, чтобы пройти.Это полезно для обнаружения случайных сбоев в тестовых случаях.
-
--max-width <width> -
Установить максимальную ширину имени теста для вывода.
Установите максимальную ширину каждого имени теста для отображения в выводе. Это позволяет пользователю расширить вывод, чтобы избежать обрезания имени теста, что может быть очень раздражающим.
-
--interactive-debug-mode [0|1] -
Установить интерактивный режим в 0 или 1.
Этот параметр заставляет CTest выполнять тесты либо в интерактивном, либо в неинтерактивном режиме. В Windows это означает, что в неинтерактивном режиме все всплывающие окна отладки системы блокируются. В режиме панели (Experimental, Nightly, Continuous) значение по умолчанию — неинтерактивное. При простом выполнении тестов, не предназначенных для панели, значение по умолчанию — разрешить всплывающие окна и интерактивную отладку.
-
--no-label-summary -
Отключить сводную информацию о времени выполнения для меток.
Этот параметр сообщает CTest не отображать сводную информацию для каждой метки, связанной с выполненными тестами. Если тестов без меток нет, ничего дополнительного не выводится.
-
--no-subproject-summary -
Отключить сводную информацию о времени выполнения для подпроектов.
Этот параметр сообщает CTest не отображать сводную информацию для каждого подпроекта, связанного с выполняемыми тестами. Если тестов без подпроектов нет, ничего дополнительного не выводится.
--build-and-test См. Режим сборки и тестирования.
-
--test-output-size-passed <size> - Ограничить вывод для пройденных тестов до
<size>байт. -
--test-output-size-failed <size> - Ограничить вывод для проваленных тестов до
<size>байт. -
--overwrite -
Перезаписать параметр конфигурации CTest.
По умолчанию CTest использует параметры конфигурации из файла конфигурации. Этот параметр перезапишет параметр конфигурации.
-
--force-new-ctest-process -
Запустить дочерние экземпляры CTest как новые процессы.
По умолчанию CTest будет запускать дочерние экземпляры CTest в рамках одного процесса. Если этого поведения не требуется, этот аргумент будет принудительно использовать новые процессы для дочерних процессов CTest.
-
--schedule-random -
Использовать случайный порядок планирования тестов.
Этот параметр запустит тесты в случайном порядке. Он часто используется для обнаружения явных зависимостей в наборе тестов.
-
--submit-index - Параметр устаревшей функциональности старого сервера панели мониторинга Dart2. Не использовать.
-
--timeout <seconds> -
Установить глобальную задержку на все тесты.
Этот параметр установит глобальную задержку на все тесты, которые еще не имеют установленной задержки.
-
--stop-time <time> -
Установить время, по которому все тесты должны прекратить работу.
Установить реальное время суток, по которому все тесты должны выйти за пределы таймаута. Пример:
7:00:00 -0400. Принимается любой формат времени, понятный парсеру даты curl. Если часовой пояс не указан, предполагается местное время. -
--print-labels -
Вывести все доступные метки тестов.
Этот параметр не будет запускать тесты, а просто выведет список всех меток, связанных с набором тестов.
-
--help,-help,-usage,-h,-H,/? -
Вывести информацию об использовании и выйти.
Информация об использовании описывает базовый интерфейс командной строки и его параметры.
-
--version,-version,/V [<f>] -
Показать заголовок имени/версии программы и выйти.
Если файл указан, версия записывается в него. Справка выводится в указанный файл <f>айл, если он задан.
-
--help-full [<f>] -
Вывести все справочные руководства и выйти.
Все руководства выводятся в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.
-
--help-manual <man> [<f>] -
Вывести одно справочное руководство и выйти.
Указанное руководство выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.
-
--help-manual-list [<f>] -
Вывести список доступных руководств справки и выйти.
Список содержит все руководства, для которых справка может быть получена с помощью параметра
--help-manual, за которым следует имя руководства. Справка выводится в указанный файл <f>айл, если он задан. -
--help-command <cmd> [<f>] -
Вывести справку по одной команде и выйти.
Запись справки в руководстве
cmake-commands(7)по<cmd>выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан. -
--help-command-list [<f>] -
Вывести список команд со справочной информацией и выйти.
Список содержит все команды, для которых справка может быть получена с помощью параметра
--help-command, за которым следует имя команды. Справка выводится в указанный файл <f>айл, если он задан. -
--help-commands [<f>] -
Вывести руководство cmake-commands и выйти.
Руководство
cmake-commands(7)выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан. -
--help-module <mod> [<f>] -
Вывести справку по одному модулю и выйти.
Запись справки в руководстве
cmake-modules(7)по<mod>выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан. -
--help-module-list [<f>] -
Вывести список модулей со справочной информацией и выйти.
Список содержит все модули, для которых справка может быть получена с помощью параметра
--help-module, за которым следует имя модуля. Справка выводится в указанный файл <f>айл, если он задан. -
--help-modules [<f>] -
Вывести руководство cmake-modules и выйти.
Руководство
cmake-modules(7)выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан. -
--help-policy <cmp> [<f>] -
Вывести справку по одному правилу и выйти.
Запись справки в руководстве
cmake-policies(7)по<cmp>выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан. -
--help-policy-list [<f>] -
Вывести список правил со справочной информацией и выйти.
Список содержит все правила, для которых справка может быть получена с помощью параметра
--help-policy, за которым следует имя правила. Справка выводится в указанный файл <f>айл, если он задан. -
--help-policies [<f>] -
Вывести руководство cmake-policies и выйти.
Руководство
cmake-policies(7)выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан. -
--help-property <prop> [<f>] -
Вывести справку по одному свойству и выйти.
Записи справки в руководстве
cmake-properties(7)по<prop>выводятся в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан. -
--help-property-list [<f>] -
Вывести список свойств со справочной информацией и выйти.
Список содержит все свойства, для которых справка может быть получена с помощью параметра
--help-property, за которым следует имя свойства. Справка выводится в указанный файл <f>айл, если он задан. -
--help-properties [<f>] -
Вывести руководство cmake-properties и выйти.
Руководство
cmake-properties(7)выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан. -
--help-variable <var> [<f>] -
Вывести справку по одной переменной и выйти.
Запись справки в руководстве
cmake-variables(7)по<var>выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан. -
--help-variable-list [<f>] -
Вывести список переменных со справочной информацией и выйти.
Список содержит все переменные, для которых справка может быть получена с помощью параметра
--help-variable, за которым следует имя переменной. Справка выводится в указанный файл <f>айл, если он задан. -
--help-variables [<f>] -
Вывести руководство cmake-variables и выйти.
Руководство
cmake-variables(7)выводится в удобочитаемом текстовом формате. Справка выводится в указанный файл <f>айл, если он задан.
Краткое описание меток и подпроектов
CTest отображает сводку времени для каждой метки и подпроекта, связанных с выполненными тестами. Сводка времени по меткам не будет включать метки, сопоставленные с подпроектами.
Когда свойство теста PROCESSORS установлено, CTest будет отображать взвешенный результат времени выполнения теста в сводках меток и подпроектов. Время отображается с sec*proc вместо простого sec.
Взвешенная сводка времени для каждой метки или подпроекта j вычисляется как:
Weighted Time Summary for Label/Subproject j =
sum(raw_test_time[j,i] * num_processors[j,i], i=1...num_tests[j])
for labels/subprojects j=1...total
где:
- raw_test_time[j,i]: Время выполнения стенда для i-го теста для j-й метки или подпроекта
- num_processors[j,i]: Значение свойства CTest PROCESSORS для i-го теста для j-й метки или подпроекта
- num_tests[j]: Количество тестов, связанных с j-й меткой или подпроектом
- total: Общее количество меток или подпроектов, для которых выполнен хотя бы один тест
Поэтому взвешенная сводка времени для каждой метки или подпроекта представляет собой время, затраченное CTest на выполнение тестов для каждой метки или подпроекта, и дает хорошее представление о полных затратах тестов для каждой метки или подпроекта по сравнению с другими метками или подпроектами.
Например, если «ПодпроектA» показал «100 сек*процессор», а «ПодпроектB» — «10 сек*процессор», значит CTest выделил примерно в 10 раз больше времени ЦП/ядра для выполнения тестов для «ПодпроектA», чем для «ПодпроектB» (например, если будут затрачены усилия для сокращения стоимости набора тестов для всего проекта, то сокращение стоимости набора тестов для «ПодпроектA» будет иметь, скорее всего, больший эффект, чем усилия по сокращению стоимости набора тестов для «ПодпроектB»).
Режим сборки и тестирования
CTest предоставляет синтаксис командной строки для настройки (т.е. запуска cmake), сборки и/или выполнения тестов:
ctest --build-and-test <path-to-source> <path-to-build>
--build-generator <generator>
[<options>...]
[--build-options <opts>...]
[--test-command <command> [<args>...]]
Этапы настройки и тестирования являются необязательными. Аргументами этой командной строки являются каталоги исходного кода и двоичных файлов. Параметр --build-generator обязателен для использования --build-and-test. Если --test-command указан, то он будет выполнен после завершения сборки. Другие параметры, влияющие на этот режим, включают:
-
--build-target -
Укажите конкретную цель сборки.
Если не указано, будет собрана цель
all. -
--build-nocmake -
Выполнить сборку без предварительного выполнения cmake.
Пропустить шаг cmake.
-
--build-run-dir -
Укажите директорию для запуска программ.
Директория, в которой будут программы после компиляции.
-
--build-two-config - Выполнить CMake дважды.
-
--build-exe-dir - Укажите директорию для исполняемого файла.
-
--build-generator - Укажите используемый генератор. См. руководство
cmake-generators(7). -
--build-generator-platform - Укажите платформу, специфичную для генератора.
-
--build-generator-toolset - Укажите набор инструментов, специфичный для генератора.
-
--build-project - Укажите имя проекта для сборки.
-
--build-makeprogram - Переопределить программу make, выбранную CTest, заданной программой.
-
--build-noclean - Пропустить шаг make clean.
-
--build-config-sample - Образец исполняемого файла для определения используемой конфигурации (например, Debug/Release и т. д.).
-
--build-options - Дополнительные параметры для настройки сборки (т. е. для CMake, а не для инструмента сборки). Обратите внимание, что если этот параметр указан, ключевое слово
--build-optionsи его аргументы должны быть последними параметрами, указанными в командной строке, за возможным исключением--test-command. -
--test-command - Команда для запуска на этапе тестирования с опцией
--build-and-test. Все аргументы, следующие за этим ключевым словом, будут считаться частью командной строки теста, поэтому это должен быть последний параметр. -
--test-timeout - Предельное время в секундах
Dashboard Client
CTest может работать как клиент для приложения панели качества программного обеспечения CDash. В качестве клиента панели CTest выполняет последовательность шагов для настройки, сборки и тестирования программного обеспечения, а затем отправляет результаты на сервер CDash. Используемая для отправки в CDash сигнатура командной строки:
ctest (-D <dashboard> | -M <model> -T <action> | -S <script> | -SP <script>)
[-- <dashboard-options>...]
Параметры для клиента панели включают:
-
--track <track> -
Укажите трек для отправки панели
Отправить панель в указанный трек вместо стандартного. По умолчанию панель отправляется в треки Nightly, Experimental или Continuous, но при указании этого параметра трек может быть произвольным.
-
-A <file>, --add-notes <file> -
Добавить файл заметок при отправке.
Этот параметр указывает CTest на включение файла заметок при отправке панели.
-
--tomorrow-tag -
Nightly или experimental начинаются с метки следующего дня.
Это полезно, если сборка не завершится в течение одного дня.
-
--extra-submit <file>[;<file>] -
Отправить дополнительные файлы на панель.
Этот параметр отправит дополнительные файлы на панель.
-
--http1.0 -
Отправить с помощью HTTP 1.0.
Этот параметр заставит CTest использовать HTTP 1.0 для отправки файлов на панель вместо HTTP 1.1.
-
--no-compress-output -
Не сжимать выходные данные тестов при отправке.
Этот флаг отключит автоматическое сжатие выходных данных тестов. Используйте его для сохранения совместимости со старой версией CDash, которая не поддерживает сжатые выходные данные тестов.
Шаги клиента панели
CTest определяет упорядоченный список шагов тестирования, некоторые или все из которых могут быть выполнены как клиент панели:
-
Start - Начать новую отправку панели, которая будет состоять из результатов, записанных последующими шагами. См. раздел Шаг CTest Start ниже.
-
Update - Обновить дерево исходного кода из его репозитория системы управления версиями. Записать старые и новые версии и список обновленных файлов исходного кода. См. раздел Шаг CTest Update ниже.
-
Configure - Настроить программное обеспечение, выполнив команду в дереве сборки. Записать журнал конфигурации. См. раздел Шаг CTest Configure ниже.
-
Build - Собрать программное обеспечение, выполнив команду в дереве сборки. Записать журнал сборки и обнаружить предупреждения и ошибки. См. раздел Шаг CTest Build ниже.
-
Test - Протестировать программное обеспечение, загрузив
CTestTestfile.cmakeиз дерева сборки и выполнив определенные тесты. Записать выходные данные и результаты каждого теста. См. раздел Шаг CTest Test ниже. -
Coverage - Вычислить покрытие исходного кода, запустив инструмент анализа покрытия и записав его выходные данные. См. раздел Шаг CTest Coverage ниже.
-
MemCheck - Запустить набор тестов программного обеспечения через инструмент проверки памяти. Записать выходные данные тестов, результаты и проблемы, сообщённые инструментом. См. раздел Шаг CTest MemCheck ниже.
-
Submit - Отправить записанные результаты других шагов тестирования на сервер панели качества программного обеспечения. См. раздел Шаг CTest Submit ниже.
Режимы работы клиента панели
CTest определяет три режима работы как клиента панели:
-
Nightly - Этот режим предназначен для вызова один раз в день, обычно ночью. Он по умолчанию включает шаги
Start,Update,Configure,Build,Test,Coverage, иSubmit. Выбранные шаги выполняются, даже если шагUpdateне обнаруживает изменений в дереве исходного кода. -
Continuous - Этот режим предназначен для многократного вызова в течение дня. Он по умолчанию включает шаги
Start,Update,Configure,Build,Test,Coverage, иSubmit, но завершает работу после шагаUpdateесли он не обнаруживает изменений в дереве исходного кода. -
Experimental - Этот режим предназначен для вызова разработчиком для тестирования локальных изменений. Он по умолчанию включает шаги
Start,Configure,Build,Test,Coverage, иSubmit.
Клиент панели через командную строку CTest
CTest может выполнять тестирование на уже сгенерированном дереве сборки. Запустите команду ctest с текущей рабочей директорий, установленной в дереве сборки, и используйте одну из этих сигнатур:
ctest -D <mode>[<step>] ctest -M <mode> [ -T <step> ]...
<mode> должен быть одним из вышеперечисленных режимов клиента панели, а каждый <step> должен быть одним из вышеперечисленных шагов клиента панели.
CTest считывает настройки конфигурации клиента панели из файла в дереве сборки, который называется либо CTestConfiguration.ini, либо DartConfiguration.tcl (названия являются историческими). Формат файла:
# Lines starting in '#' are comments. # Other non-blank lines are key-value pairs. <setting>: <value>
где <setting> — имя настройки, а <value> — значение настройки.
В деревьях сборки, сгенерированных CMake, этот файл конфигурации генерируется модулем CTest, если он включён в проект. Модуль использует переменные для получения значения каждой настройки, как описано ниже.
Клиент панели через скрипт CTest
CTest может выполнять тестирование, управляемое скриптом cmake-language(7), который создаёт и поддерживает дерево исходного и бинарного кода, а также выполняет шаги тестирования. Запустите команду ctest с текущей рабочей директорией вне любого дерева сборки и используйте одну из этих сигнатур:
ctest -S <script> ctest -SP <script>
Файл <script> должен вызывать команды Команды CTest для явного запуска шагов тестирования, как описано ниже. Команды получают настройки конфигурации клиента панели из своих аргументов или из переменных, заданных в скрипте.
Конфигурация клиента панели
Шаги клиента панели можно настроить с помощью именованных настроек, как описано в следующих разделах.
Шаг CTest Start
Начать новую отправку панели, которая будет состоять из результатов, записанных последующими шагами.
В скрипте CTest Script команда ctest_start() выполняет этот шаг. Аргументы команды могут указывать некоторые из настроек шага. Команда сначала выполняет команду, указанную в переменной CTEST_CHECKOUT_COMMAND, если она задана, для инициализации директории исходного кода.
Настройки конфигурации включают:
-
BuildDirectory -
Полный путь к дереву сборки проекта.
-
Сценарий CTest переменная:
CTEST_BINARY_DIRECTORY -
CTestмодуль переменная:PROJECT_BINARY_DIR
-
Сценарий CTest переменная:
-
SourceDirectory -
Полный путь к дереву исходных кодов проекта.
-
Сценарий CTest переменная:
CTEST_SOURCE_DIRECTORY -
CTestмодуль переменная:PROJECT_SOURCE_DIR
-
Сценарий CTest переменная:
Шаг обновления CTest
В Сценарии CTest команда ctest_update() выполняет этот шаг. Аргументы к команде могут задавать некоторые параметры шага.
Настройки конфигурации для указания инструмента управления версиями включают:
-
BZRCommand -
bzrкомандная утилита для использования, если дерево исходного кода управляется Bazaar.-
Скрипт CTest переменная:
CTEST_BZR_COMMAND -
CTestпеременная модуля: нет
-
Скрипт CTest переменная:
-
BZRUpdateOptions -
Командные параметры для
BZRCommandпри обновлении исходного кода.-
Скрипт CTest переменная:
CTEST_BZR_UPDATE_OPTIONS -
CTestпеременная модуля: нет
-
Скрипт CTest переменная:
-
CVSCommand -
cvsкомандная утилита для использования, если дерево исходного кода управляется CVS.-
Скрипт CTest переменная:
CTEST_CVS_COMMAND -
CTestпеременная модуля:CVSCOMMAND
-
Скрипт CTest переменная:
-
CVSUpdateOptions -
Командные параметры для
CVSCommandпри обновлении исходного кода.-
Скрипт CTest переменная:
CTEST_CVS_UPDATE_OPTIONS -
CTestпеременная модуля:CVS_UPDATE_OPTIONS
-
Скрипт CTest переменная:
-
GITCommand -
gitкомандная утилита для использования, если дерево исходного кода управляется Git.-
Скрипт CTest переменная:
CTEST_GIT_COMMAND -
CTestпеременная модуля:GITCOMMAND
Дерево исходного кода обновляется с помощью
git fetch, за которым следуетgit reset --hardкFETCH_HEAD. Результат такой же, как уgit pull, за исключением того, что любые локальные изменения перезаписываются. ИспользуйтеGITUpdateCustomдля указания другого подхода. -
Скрипт CTest переменная:
-
GITInitSubmodules -
Если установлено, CTest обновит подмодули репозитория перед обновлением.
-
Скрипт CTest переменная:
CTEST_GIT_INIT_SUBMODULES -
CTestпеременная модуля:CTEST_GIT_INIT_SUBMODULES
-
Скрипт CTest переменная:
-
GITUpdateCustom -
Укажите пользовательскую командную строку (в виде списка, разделённого точкой с запятой), которую следует выполнить в дереве исходного кода (рабочей области Git) для его обновления вместо запуска
GITCommand.-
Скрипт CTest переменная:
CTEST_GIT_UPDATE_CUSTOM -
CTestпеременная модуля:CTEST_GIT_UPDATE_CUSTOM
-
Скрипт CTest переменная:
-
GITUpdateOptions -
Командные параметры для
GITCommandпри обновлении исходного кода.-
Скрипт CTest переменная:
CTEST_GIT_UPDATE_OPTIONS -
CTestпеременная модуля:GIT_UPDATE_OPTIONS
-
Скрипт CTest переменная:
-
HGCommand -
hgкомандная утилита для использования, если дерево исходного кода управляется Mercurial.-
Скрипт CTest переменная:
CTEST_HG_COMMAND -
CTestпеременная модуля: нет
-
Скрипт CTest переменная:
-
HGUpdateOptions -
Командные параметры для
HGCommandпри обновлении исходного кода.-
Скрипт CTest переменная:
CTEST_HG_UPDATE_OPTIONS -
CTestпеременная модуля: нет
-
Скрипт CTest переменная:
-
P4Client -
Значение параметра
-cдляP4Command.-
Скрипт CTest переменная:
CTEST_P4_CLIENT -
CTestпеременная модуля:CTEST_P4_CLIENT
-
Скрипт CTest переменная:
-
P4Command -
p4командная утилита для использования, если дерево исходного кода управляется Perforce.-
Скрипт CTest переменная:
CTEST_P4_COMMAND -
CTestпеременная модуля:P4COMMAND
-
Скрипт CTest переменная:
-
P4Options -
Командные параметры для
P4Commandдля всех вызовов.-
Скрипт CTest переменная:
CTEST_P4_OPTIONS -
CTestпеременная модуля:CTEST_P4_OPTIONS
-
Скрипт CTest переменная:
-
P4UpdateCustom -
Укажите пользовательскую командную строку (в виде списка, разделённого точкой с запятой), которую следует выполнить в дереве исходного кода (дереве Perforce) для его обновления вместо запуска
P4Command.- Скрипт CTest переменная: нет
-
CTestпеременная модуля:CTEST_P4_UPDATE_CUSTOM
-
P4UpdateOptions -
Командные параметры для
P4Commandпри обновлении исходного кода.-
Скрипт CTest переменная:
CTEST_P4_UPDATE_OPTIONS -
CTestпеременная модуля:CTEST_P4_UPDATE_OPTIONS
-
Скрипт CTest переменная:
-
SVNCommand -
svnкомандная утилита для использования, если дерево исходного кода управляется Subversion.-
Скрипт CTest переменная:
CTEST_SVN_COMMAND -
CTestпеременная модуля:SVNCOMMAND
-
Скрипт CTest переменная:
-
SVNOptions -
Командные параметры для
SVNCommandдля всех вызовов.-
Скрипт CTest переменная:
CTEST_SVN_OPTIONS -
CTestпеременная модуля:CTEST_SVN_OPTIONS
-
Скрипт CTest переменная:
-
SVNUpdateOptions
-
Параметры командной строки для
SVNCommandпри обновлении исходного кода.-
Сценарий CTest переменная:
CTEST_SVN_UPDATE_OPTIONS -
CTestмодульная переменная:SVN_UPDATE_OPTIONS
-
Сценарий CTest переменная:
-
UpdateCommand -
Укажите утилиту командной строки для системы контроля версий без определения VCS, управляющего деревом исходного кода.
-
Сценарий CTest переменная:
CTEST_UPDATE_COMMAND -
CTestмодульная переменная:<VCS>COMMANDприUPDATE_TYPEравном<vcs>, иначеUPDATE_COMMAND
-
Сценарий CTest переменная:
-
UpdateOptions -
Параметры командной строки для
UpdateCommand.-
Сценарий CTest переменная:
CTEST_UPDATE_OPTIONS -
CTestмодульная переменная:<VCS>_UPDATE_OPTIONSприUPDATE_TYPEравном<vcs>, иначеUPDATE_OPTIONS
-
Сценарий CTest переменная:
-
UpdateType -
Укажите систему контроля версий, которая управляет деревом исходного кода, если её нельзя автоматически обнаружить. Значение может быть
bzr,cvs,git,hg,p4, илиsvn.- Сценарий CTest переменная: нет, определено из дерева исходного кода
-
CTestмодульная переменная:UPDATE_TYPEесли задана, иначеCTEST_UPDATE_TYPE
-
UpdateVersionOnly -
Укажите, что вы хотите, чтобы команда обновления системы контроля версий только обнаруживала текущую проверенную версию, а не обновлялась до другой версии.
-
Сценарий CTest переменная:
CTEST_UPDATE_VERSION_ONLY
-
Сценарий CTest переменная:
Дополнительные параметры конфигурации включают:
-
NightlyStartTime -
В режиме панели мониторинга
Nightly, укажите «время начала ночного сборки». В системах централизованного управления версиями (cvsиsvn) шагUpdateпроверяет версию программного обеспечения на эту дату и время, чтобы несколько клиентов выбрали общую версию для тестирования. В распределённых системах управления версиями это не определено, поэтому настройка игнорируется.-
Сценарий CTest переменная:
CTEST_NIGHTLY_START_TIME -
CTestмодульная переменная:NIGHTLY_START_TIMEесли задана, иначеCTEST_NIGHTLY_START_TIME
-
Сценарий CTest переменная:
Шаг CTest Configure
В Сценарии CTest, команда ctest_configure() выполняет этот шаг. Аргументы команды могут указать некоторые из настроек шага.
Настройки конфигурации включают:
-
ConfigureCommand -
Командная строка для запуска процесса конфигурации программного обеспечения. Она будет выполнена в расположении, указанном настройкой
BuildDirectory.-
Сценарий CTest переменная:
CTEST_CONFIGURE_COMMAND -
CTestмодульная переменная:CMAKE_COMMAND, за которым следуетPROJECT_SOURCE_DIR
-
Сценарий CTest переменная:
-
LabelsForSubprojects -
Укажите список меток, разделённых точкой с запятой, которые будут рассматриваться как подпроекты. Эта сопоставление будет передано в CDash при отправке результатов конфигурации, тестирования или сборки.
-
Сценарий CTest переменная:
CTEST_LABELS_FOR_SUBPROJECTS -
CTestмодульная переменная:CTEST_LABELS_FOR_SUBPROJECTS
-
Сценарий CTest переменная:
Шаг CTest Build
В Сценарии CTest, команда ctest_build() выполняет этот шаг. Аргументы команды могут указать некоторые из настроек шага.
Настройки конфигурации включают:
-
DefaultCTestConfigurationType -
Когда система сборки, которая должна быть запущена, позволяет выбрать конфигурацию во время сборки (например,
Debug,Release), это указывает на стандартную конфигурацию, которая будет собрана, если к командеctestне указан параметр-C. Значение будет подставлено в значениеMakeCommand, заменив литеральную строку${CTEST_CONFIGURATION_TYPE}в случае её присутствия.-
Сценарий CTest переменная:
CTEST_CONFIGURATION_TYPE -
CTestмодульная переменная:DEFAULT_CTEST_CONFIGURATION_TYPE, инициализированная переменной средыCMAKE_CONFIG_TYPE
-
Сценарий CTest переменная:
-
LabelsForSubprojects -
Укажите список меток, разделённых точкой с запятой, которые будут рассматриваться как подпроекты. Это отображение будет передано в CDash при отправке результатов конфигурации, тестирования или сборки.
-
Сценарий CTest переменная:
CTEST_LABELS_FOR_SUBPROJECTS -
CTestмодульная переменная:CTEST_LABELS_FOR_SUBPROJECTS
-
Сценарий CTest переменная:
-
MakeCommand -
Команда для запуска процесса сборки программного обеспечения. Она будет выполнена в расположении, указанном настройкой
BuildDirectory.-
Сценарий CTest переменная:
CTEST_BUILD_COMMAND -
CTestмодульная переменная:MAKECOMMAND, инициализированная командойbuild_command()
-
Сценарий CTest переменная:
-
UseLaunchers -
Для деревьев сборки, сгенерированных CMake с использованием одного из Генераторов Makefile или генератора
Ninja, укажите, включена ли функцияCTEST_USE_LAUNCHERSмодулемCTestUseLaunchers(также включённым модулемCTest). При включении, сгенерированная система сборки обернёт каждый вызов компилятора, компоновщика или произвольной командной строки «запускателем», который взаимодействует с CTest через переменные среды и файлы для отчёта о детальных предупреждениях и ошибках сборки. В противном случае CTest должен «извлечь» журнал вывода сборки для диагностики.-
Сценарий CTest переменная:
CTEST_USE_LAUNCHERS -
CTestмодульная переменная:CTEST_USE_LAUNCHERS
-
Сценарий CTest переменная:
Шаг тестирования CTest
В Сценарии CTest команда ctest_test() выполняет этот шаг. Аргументы команды могут указать некоторые из настроек шага.
Настройки конфигурации включают:
-
LabelsForSubprojects -
Укажите список меток, разделённых точкой с запятой, которые будут рассматриваться как подпроекты. Это отображение будет передано в CDash при отправке результатов конфигурации, тестирования или сборки.
-
Сценарий CTest переменная:
CTEST_LABELS_FOR_SUBPROJECTS -
CTestмодульная переменная:CTEST_LABELS_FOR_SUBPROJECTS
-
Сценарий CTest переменная:
-
TestLoad -
При одновременном запуске тестов (например, с
-j) старайтесь не запускать тесты, которые могут привести к превышению заданного порога загрузки процессора.-
Сценарий CTest переменная:
CTEST_TEST_LOAD -
CTestмодульная переменная:CTEST_TEST_LOAD
-
Сценарий CTest переменная:
-
TimeOut -
Стандартный тайм-аут для каждого теста, если не указан свойством теста
TIMEOUT.-
Сценарий CTest переменная:
CTEST_TEST_TIMEOUT -
CTestмодульная переменная:DART_TESTING_TIMEOUT
-
Сценарий CTest переменная:
Шаг покрытия кода CTest
В Сценарии CTest команда ctest_coverage() выполняет этот шаг. Аргументы команды могут указать некоторые из настроек шага.
Настройки конфигурации включают:
-
CoverageCommand -
Инструмент командной строки для выполнения анализа покрытия кода. Он будет выполнен в расположении, указанном настройкой
BuildDirectory.-
Сценарий CTest переменная:
CTEST_COVERAGE_COMMAND -
CTestмодульная переменная:COVERAGE_COMMAND
-
Сценарий CTest переменная:
-
CoverageExtraFlags -
Укажите параметры командной строки для инструмента
CoverageCommand.-
Сценарий CTest переменная:
CTEST_COVERAGE_EXTRA_FLAGS -
CTestмодульная переменная:COVERAGE_EXTRA_FLAGS
Эти параметры являются первыми аргументами, передаваемыми
CoverageCommand. -
Сценарий CTest переменная:
Шаг CTest MemCheck
В Сценарии CTest команда ctest_memcheck() выполняет этот шаг. Аргументы команды могут указать некоторые из настроек шага.
Настройки конфигурации включают:
-
MemoryCheckCommand -
Инструмент командной строки для выполнения динамического анализа. Команды тестов будут запускаться через этот инструмент.
-
Сценарий CTest переменная:
CTEST_MEMORYCHECK_COMMAND -
CTestмодульная переменная:MEMORYCHECK_COMMAND
-
Сценарий CTest переменная:
-
MemoryCheckCommandOptions -
Укажите параметры командной строки для инструмента
MemoryCheckCommand. Они будут размещены перед командной строкой теста.-
Сценарий CTest переменная:
CTEST_MEMORYCHECK_COMMAND_OPTIONS -
CTestмодульная переменная:MEMORYCHECK_COMMAND_OPTIONS
-
Сценарий CTest переменная:
-
MemoryCheckType -
Укажите тип проверки памяти для выполнения.
-
Сценарий CTest переменная:
CTEST_MEMORYCHECK_TYPE -
CTestмодульная переменная:MEMORYCHECK_TYPE
-
Сценарий CTest переменная:
-
MemoryCheckSanitizerOptions -
Укажите параметры для сантайзеров при выполнении со сборкой, включенной в сантайзер.
-
Сценарий CTest переменная:
CTEST_MEMORYCHECK_SANITIZER_OPTIONS -
CTestмодульная переменная:MEMORYCHECK_SANITIZER_OPTIONS
-
Сценарий CTest переменная:
-
MemoryCheckSuppressionFile -
Укажите файл, содержащий правила подавления для инструмента
MemoryCheckCommand. Он будет передан с параметрами, соответствующими инструменту.-
Сценарий CTest переменная:
CTEST_MEMORYCHECK_SUPPRESSIONS_FILE -
CTestмодульная переменная:MEMORYCHECK_SUPPRESSIONS_FILE
-
Сценарий CTest переменная:
Дополнительные параметры конфигурации включают:
-
BoundsCheckerCommand -
Укажите
MemoryCheckCommand, который известен как совместимый с командной строкой Bounds Checker.- Сценарий CTest переменная: none
-
CTestмодульная переменная: none
-
PurifyCommand -
Укажите
MemoryCheckCommand, который известен как совместимый с командной строкой Purify.- Сценарий CTest переменная: none
-
CTestмодульная переменная:PURIFYCOMMAND
-
ValgrindCommand -
Укажите
MemoryCheckCommand, который известен как совместимый с командной строкой Valgrind.- Сценарий CTest переменная: none
-
CTestмодульная переменная:VALGRIND_COMMAND
-
ValgrindCommandOptions -
Укажите параметры командной строки для инструмента
ValgrindCommand. Они будут размещены перед командной строкой теста.- Сценарий CTest переменная: none
-
CTestмодульная переменная:VALGRIND_COMMAND_OPTIONS
Шаг CTest Submit
В Сценарии CTest, команда ctest_submit() выполняет этот шаг. Аргументы команды могут указать некоторые настройки шага.
Настройки конфигурации включают:
-
BuildName -
Опишите платформу клиента панели мониторинга с помощью короткой строки. (Операционная система, компилятор и т. д.)
-
Сценарий CTest переменная:
CTEST_BUILD_NAME -
CTestмодульная переменная:BUILDNAME
-
Сценарий CTest переменная:
-
CDashVersion -
Укажите версию CDash на сервере.
- Сценарий CTest переменная: отсутствует, определено из сервера
-
CTestмодульная переменная:CTEST_CDASH_VERSION
-
CTestSubmitRetryCount -
Укажите количество попыток повторной отправки при сбое сети.
-
Сценарий CTest переменная: отсутствует, используйте опцию
ctest_submit()RETRY_COUNT. -
CTestмодульная переменная:CTEST_SUBMIT_RETRY_COUNT
-
Сценарий CTest переменная: отсутствует, используйте опцию
-
CTestSubmitRetryDelay -
Укажите задержку перед повторной отправкой при сбое сети.
-
Сценарий CTest переменная: отсутствует, используйте опцию
ctest_submit()RETRY_DELAY. -
CTestмодульная переменная:CTEST_SUBMIT_RETRY_DELAY
-
Сценарий CTest переменная: отсутствует, используйте опцию
-
CurlOptions -
Укажите список опций, разделенных точкой с запятой, для управления библиотекой Curl, которую CTest использует для подключения к серверу. Возможные опции —
CURLOPT_SSL_VERIFYPEER_OFFиCURLOPT_SSL_VERIFYHOST_OFF.-
Сценарий CTest переменная:
CTEST_CURL_OPTIONS -
CTestмодульная переменная:CTEST_CURL_OPTIONS
-
Сценарий CTest переменная:
-
DropLocation -
Путь на сервере панели мониторинга для отправки отчета.
-
Сценарий CTest переменная:
CTEST_DROP_LOCATION -
CTestмодульная переменная:DROP_LOCATIONесли задано, иначеCTEST_DROP_LOCATION
-
Сценарий CTest переменная:
-
DropMethod -
Укажите метод, с помощью которого результаты должны быть отправлены на сервер панели мониторинга. Значение может быть
cp,ftp,http,https,scp, илиxmlrpc(если CMake был скомпилирован с поддержкой).-
Сценарий CTest переменная:
CTEST_DROP_METHOD -
CTestмодульная переменная:DROP_METHODесли задано, иначеCTEST_DROP_METHOD
-
Сценарий CTest переменная:
-
DropSite -
Имя сервера панели мониторинга (для
ftp,http, иhttps,scp, иxmlrpc).-
Сценарий CTest переменная:
CTEST_DROP_SITE -
CTestмодульная переменная:DROP_SITEесли задано, иначеCTEST_DROP_SITE
-
Сценарий CTest переменная:
-
DropSitePassword -
Пароль для входа на сервер панели мониторинга, если требуется (для
ftp,http, иhttps).-
Сценарий CTest переменная:
CTEST_DROP_SITE_PASSWORD -
CTestмодульная переменная:DROP_SITE_PASSWORDесли задано, иначеCTEST_DROP_SITE_PASWORD
-
Сценарий CTest переменная:
-
DropSiteUser -
Имя пользователя для входа на сервер панели мониторинга, если требуется (для
ftp,http, иhttps).-
Сценарий CTest переменная:
CTEST_DROP_SITE_USER -
CTestмодульная переменная:DROP_SITE_USERесли задано, иначеCTEST_DROP_SITE_USER
-
Сценарий CTest переменная:
-
IsCDash -
Укажите, является ли сервер панели мониторинга CDash или более старой реализацией сервера панели мониторинга, требующей
TriggerSite.-
Сценарий CTest переменная:
CTEST_DROP_SITE_CDASH -
CTestмодульная переменная:CTEST_DROP_SITE_CDASH
-
Сценарий CTest переменная:
-
ScpCommand -
scpинструмент командной строки для использования, когдаDropMethodэтоscp.-
Сценарий CTest переменная:
CTEST_SCP_COMMAND -
CTestмодульная переменная:SCPCOMMAND
-
Сценарий CTest переменная:
-
Site -
Опишите хост-сайт клиента панели мониторинга с помощью короткой строки. (Имя хоста, домен и т. д.)
-
Сценарий CTest переменная:
CTEST_SITE -
CTestмодульная переменная:SITE, инициализировано командойsite_name()
-
Сценарий CTest переменная:
-
TriggerSite -
Устаревшая опция для поддержки более старых реализаций сервера панели мониторинга. Не используется, когда
IsCDashявляется истинным.-
Сценарий CTest переменная:
CTEST_TRIGGER_SITE -
CTestмодульная переменная:TRIGGER_SITEесли задано, иначеCTEST_TRIGGER_SITE
-
Сценарий CTest переменная:
См. также
Для получения помощи в использовании CMake доступны следующие ресурсы:
- Главная страница
-
Основная точка входа для получения информации о CMake.
- Документация в Интернете и ресурсы сообщества
-
https://cmake.org/documentation
На этой веб-странице вы найдете ссылки на доступную документацию и ресурсы сообщества.
- Список рассылки
-
https://cmake.org/mailing-lists
Для получения помощи и обсуждения использования CMake, имеется список рассылки по адресу cmake@cmake.org. Список предназначен только для участников, но можно подписаться на странице CMake. Перед отправкой вопросов в список, пожалуйста, сначала ознакомьтесь с полной документацией по адресу https://cmake.org.
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.12/manual/ctest.1.html