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>...]
\n Описание
Исполняемый файл «ctest» — это программа-драйвер тестов CMake. Древовидные структуры сборки, сгенерированные CMake для проектов, использующих команды ENABLE_TESTING и ADD_TEST, поддерживают тестирование. Эта программа выполнит тесты и сообщит результаты.
Опции
-
-C <cfg>, --build-config <cfg> -
Выберите конфигурацию для тестирования.
Некоторые сгенерированные CMake деревья построения могут иметь несколько конфигураций построения в одном дереве. Этот параметр позволяет указать, какая конфигурация должна быть протестирована. Примерами конфигураций являются «Debug» и «Release».
-
--progress -
Включить краткий вывод прогресса тестов.
Когда вывод
ctestотправляется непосредственно в терминал, прогресс выполнения набора тестов отображается обновлением одной и той же строки, а не выводом сообщений начала и конца каждого теста в новых строках. Это значительно сокращает объём вывода тестов. Сообщения о завершении тестов по-прежнему выводятся в отдельной строке для проваленных тестов, и итоговое резюме теста также будет записано.Этот параметр также можно включить, задав переменную среды
CTEST_PROGRESS_OUTPUT. -
-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 затратил на выполнение тестов для каждой метки или подпроекта, и дает хорошее представление о общей затрате времени на тесты для каждой метки или подпроекта по сравнению с другими метками или подпроектами.
Например, если «SubprojectA» показал «100 сек*процессор» и «SubprojectB» показал «10 сек*процессор», то CTest выделил примерно в 10 раз больше времени ЦП/ядра для выполнения тестов для «SubprojectA», чем для «SubprojectB» (например, если будет затрачено усилие на сокращение стоимости набора тестов для всего проекта, то сокращение стоимости набора тестов для «SubprojectA» вероятно окажет большее влияние, чем усилия по сокращению стоимости набора тестов для «SubprojectB»).
Режим сборки и тестирования
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 - Предельное время в секундах
Клиент панели мониторинга
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 команда 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
В сценарии 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
В сценарии CTest команда ctest_build() выполняет этот шаг. Аргументы команды могут указывать некоторые параметры шага.
Параметры конфигурации включают:
-
DefaultCTestConfigurationType -
Когда система сборки позволяет выбрать конфигурацию во время сборки (например,
Debug,Release), это указывает на стандартную конфигурацию для сборки, когда опция-Cне передана командеctest. Значение будет подставлено в значение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имеет значение true.-
Сценарий 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 доступен список рассылки. Прежде чем задавать вопросы в список, ознакомьтесь с полной документацией на https://cmake.org.
© 2000–2019 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.13/manual/ctest.1.html