Spec-Zone.ru › CMake 3.13

ctest(1)

  • Краткое описание
  • Описание
  • Опции
  • Краткое описание меток и подпроектов
  • Режим сборки и тестирования
  • Клиент панели управления
    • Шаги клиента панели управления
    • Режимы клиента панели управления
    • Клиент панели управления через командную строку CTest
    • Клиент панели управления через скрипт CTest
  • Конфигурация клиента панели управления
    • Шаг CTest Start
    • Шаг CTest Update
    • Шаг CTest Configure
    • Шаг CTest Build
    • Шаг CTest Test
    • Шаг CTest Coverage
    • Шаг CTest MemCheck
    • Шаг CTest Submit
  • См. также

Краткое описание

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
SourceDirectory

Полный путь к дереву исходных кодов проекта.

  • Сценарий CTest переменная: CTEST_SOURCE_DIRECTORY
  • CTest переменная модуля: PROJECT_SOURCE_DIR

Шаг обновления CTest

В сценарии CTest этот шаг выполняет команда ctest_update(). Аргументы команды могут указать некоторые настройки шага.

Настройки конфигурации для указания системы контроля версий включают:

BZRCommand

bzr инструмент командной строки, который используется, если дерево исходного кода управляется Bazaar.

  • Скрипт CTest переменная: CTEST_BZR_COMMAND
  • CTest переменная модуля: ни одной
BZRUpdateOptions

Опции командной строки для BZRCommand при обновлении исходного кода.

  • Скрипт CTest переменная: CTEST_BZR_UPDATE_OPTIONS
  • CTest переменная модуля: ни одной
CVSCommand

cvs инструмент командной строки, который используется, если дерево исходного кода управляется CVS.

  • Скрипт CTest переменная: CTEST_CVS_COMMAND
  • CTest переменная модуля: CVSCOMMAND
CVSUpdateOptions

Опции командной строки для CVSCommand при обновлении исходного кода.

  • Скрипт CTest переменная: CTEST_CVS_UPDATE_OPTIONS
  • CTest переменная модуля: CVS_UPDATE_OPTIONS
GITCommand

git инструмент командной строки, который используется, если дерево исходного кода управляется Git.

  • Скрипт CTest переменная: CTEST_GIT_COMMAND
  • CTest переменная модуля: GITCOMMAND

Дерево исходного кода обновляется с помощью git fetch и git reset --hard в FETCH_HEAD. Результат аналогичен git pull, за исключением того, что любые локальные изменения перезаписываются. Используйте GITUpdateCustom для указания другого подхода.

GITInitSubmodules

Если установлено, CTest обновит подмодули репозитория перед обновлением.

  • Скрипт CTest переменная: CTEST_GIT_INIT_SUBMODULES
  • CTest переменная модуля: CTEST_GIT_INIT_SUBMODULES
GITUpdateCustom

Укажите пользовательскую командную строку (в виде списка, разделённого точкой с запятой), которую нужно выполнить в дереве исходного кода (рабочей области Git), чтобы обновить его вместо запуска GITCommand.

  • Скрипт CTest переменная: CTEST_GIT_UPDATE_CUSTOM
  • CTest переменная модуля: CTEST_GIT_UPDATE_CUSTOM
GITUpdateOptions

Опции командной строки для GITCommand при обновлении исходного кода.

  • Скрипт CTest переменная: CTEST_GIT_UPDATE_OPTIONS
  • CTest переменная модуля: GIT_UPDATE_OPTIONS
HGCommand

hg инструмент командной строки, который используется, если дерево исходного кода управляется Mercurial.

  • Скрипт CTest переменная: CTEST_HG_COMMAND
  • CTest переменная модуля: ни одной
HGUpdateOptions

Опции командной строки для HGCommand при обновлении исходного кода.

  • Скрипт CTest переменная: CTEST_HG_UPDATE_OPTIONS
  • CTest переменная модуля: ни одной
P4Client

Значение опции -c для P4Command.

  • Скрипт CTest переменная: CTEST_P4_CLIENT
  • CTest переменная модуля: CTEST_P4_CLIENT
P4Command

p4 инструмент командной строки, который используется, если дерево исходного кода управляется Perforce.

  • Скрипт CTest переменная: CTEST_P4_COMMAND
  • CTest переменная модуля: P4COMMAND
P4Options

Опции командной строки для P4Command для всех вызовов.

  • Скрипт CTest переменная: CTEST_P4_OPTIONS
  • CTest переменная модуля: CTEST_P4_OPTIONS
P4UpdateCustom

Укажите пользовательскую командную строку (в виде списка, разделённого точкой с запятой), которую нужно выполнить в дереве исходного кода (дерево Perforce), чтобы обновить его вместо запуска P4Command.

  • Скрипт CTest переменная: ни одной
  • CTest переменная модуля: CTEST_P4_UPDATE_CUSTOM
P4UpdateOptions

Опции командной строки для P4Command при обновлении исходного кода.

  • Скрипт CTest переменная: CTEST_P4_UPDATE_OPTIONS
  • CTest переменная модуля: CTEST_P4_UPDATE_OPTIONS
SVNCommand

svn инструмент командной строки, который используется, если дерево исходного кода управляется Subversion.

  • Скрипт CTest переменная: CTEST_SVN_COMMAND
  • CTest переменная модуля: SVNCOMMAND
SVNOptions

Опции командной строки для SVNCommand для всех вызовов.

  • Скрипт CTest переменная: CTEST_SVN_OPTIONS
  • CTest переменная модуля: CTEST_SVN_OPTIONS
SVNUpdateOptions

Опции командной строки для SVNCommand при обновлении исходного кода.

  • Скрипт CTest переменная: CTEST_SVN_UPDATE_OPTIONS
  • CTest переменная модуля: SVN_UPDATE_OPTIONS
UpdateCommand

Укажите командную строку инструмента управления системой контроля версий, не обнаруживая VCS, управляющего деревом исходного кода.

  • Сценарий CTest переменная: CTEST_UPDATE_COMMAND
  • CTest модульная переменная: <VCS>COMMAND когда UPDATE_TYPE равно <vcs>, иначе UPDATE_COMMAND
UpdateOptions

Опции командной строки для UpdateCommand.

  • Сценарий CTest переменная: CTEST_UPDATE_OPTIONS
  • CTest модульная переменная: <VCS>_UPDATE_OPTIONS когда UPDATE_TYPE равно <vcs>, иначе UPDATE_OPTIONS
UpdateType

Укажите систему управления версиями, управляющую деревом исходного кода, если её нельзя автоматически обнаружить. Значение может быть bzr, cvs, git, hg, p4, или svn.

  • Сценарий CTest переменная: без значения, определено из дерева исходного кода
  • CTest модульная переменная: UPDATE_TYPE если задано, иначе CTEST_UPDATE_TYPE
UpdateVersionOnly

Укажите, что вы хотите, чтобы команда обновления контроля версий обнаруживала только текущую проверенную версию, а не обновляла до другой версии.

  • Сценарий CTest переменная: CTEST_UPDATE_VERSION_ONLY

Дополнительные параметры конфигурации включают:

NightlyStartTime

В режиме информационной панели Nightly, укажите «время начала ночной сборки». В системах централизованного управления версиями (cvs и svn) этап Update проверяет версию программного обеспечения по этой дате и времени, чтобы обеспечить выбор одной общей версии для тестирования несколькими клиентами. Это не определено в распределённых системах управления версиями, поэтому настройка игнорируется.

  • Сценарий CTest переменная: CTEST_NIGHTLY_START_TIME
  • CTest модульная переменная: NIGHTLY_START_TIME если задано, иначе CTEST_NIGHTLY_START_TIME

Шаг конфигурации CTest

В сценарии CTest команда ctest_configure() выполняет этот шаг. Аргументы команды могут указывать некоторые параметры шага.

Параметры конфигурации включают:

ConfigureCommand

Командная строка для запуска процесса конфигурации программного обеспечения. Она будет выполнена в расположении, указанном настройкой BuildDirectory.

  • Сценарий CTest переменная: CTEST_CONFIGURE_COMMAND
  • CTest модульная переменная: CMAKE_COMMAND после PROJECT_SOURCE_DIR
LabelsForSubprojects

Укажите список меток, разделённых точкой с запятой, которые будут рассматриваться как подпроекты. Это отображение будет передано в CDash при представлении результатов конфигурации, тестирования или сборки.

  • Сценарий CTest переменная: CTEST_LABELS_FOR_SUBPROJECTS
  • CTest модульная переменная: CTEST_LABELS_FOR_SUBPROJECTS

См. Обзор меток и подпроектов.

Шаг сборки 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
LabelsForSubprojects

Укажите список меток, разделённых точкой с запятой, которые будут рассматриваться как подпроекты. Это отображение будет передано в CDash при представлении результатов конфигурации, тестирования или сборки.

  • Сценарий CTest переменная: CTEST_LABELS_FOR_SUBPROJECTS
  • CTest модульная переменная: CTEST_LABELS_FOR_SUBPROJECTS

См. Обзор меток и подпроектов.

MakeCommand

Командная строка для запуска процесса сборки программного обеспечения. Она будет выполнена в расположении, указанном настройкой BuildDirectory.

  • Сценарий CTest переменная: CTEST_BUILD_COMMAND
  • CTest модульная переменная: MAKECOMMAND, инициализирована командой build_command()
UseLaunchers

Для деревьев сборки, сгенерированных CMake с использованием одного из генераторов Makefile или генератора Ninja, укажите, активирована ли функция CTEST_USE_LAUNCHERS модулем CTestUseLaunchers (также включён модулем CTest). При активации сгенерированная система сборки оборачивает каждый вызов компилятора, компоновщика или пользовательской командной строки «запускающим модулем», который общается с CTest через переменные окружения и файлы для отчёта о детальных предупреждениях и ошибках сборки. Иначе CTest должен «извлечь» диагностические данные из лога вывода сборки.

  • Сценарий CTest переменная: CTEST_USE_LAUNCHERS
  • CTest модульная переменная: CTEST_USE_LAUNCHERS

Шаг тестирования CTest

В сценарии CTest команда ctest_test() выполняет этот шаг. Аргументы команды могут указывать некоторые параметры шага.

Параметры конфигурации включают:

LabelsForSubprojects

Укажите список меток, разделённых точкой с запятой, которые будут обрабатываться как подпроекты. Это отображение будет передано в CDash при отправке результатов конфигурации, тестирования или сборки.

  • Сценарий CTest переменная: CTEST_LABELS_FOR_SUBPROJECTS
  • CTest модульная переменная: CTEST_LABELS_FOR_SUBPROJECTS

См. Резюме меток и подпроектов.

TestLoad

При запуске тестов параллельно (например, с -j), старайтесь не запускать тесты, которые могут привести к превышению заданного порога загрузки процессора.

  • Сценарий CTest переменная: CTEST_TEST_LOAD
  • CTest модульная переменная: CTEST_TEST_LOAD
TimeOut

Значение по умолчанию для таймаута каждого теста, если не указано свойством теста TIMEOUT.

  • Сценарий CTest переменная: CTEST_TEST_TIMEOUT
  • CTest модульная переменная: DART_TESTING_TIMEOUT

Шаг CTest по покрытию кода

В сценарии CTest этот шаг выполняет команда ctest_coverage(). Аргументы команды могут указать некоторые настройки шага.

Настройки конфигурации включают:

CoverageCommand

Инструмент командной строки для выполнения анализа покрытия программного обеспечения. Он будет выполнен в расположении, указанном настройкой BuildDirectory.

  • Сценарий CTest переменная: CTEST_COVERAGE_COMMAND
  • CTest модульная переменная: COVERAGE_COMMAND
CoverageExtraFlags

Укажите параметры командной строки для инструмента CoverageCommand.

  • Сценарий CTest переменная: CTEST_COVERAGE_EXTRA_FLAGS
  • CTest модульная переменная: COVERAGE_EXTRA_FLAGS

Эти параметры являются первыми аргументами, передаваемыми инструменту CoverageCommand.

Шаг CTest MemCheck

В сценарии CTest этот шаг выполняет команда ctest_memcheck(). Аргументы команды могут указать некоторые настройки шага.

Настройки конфигурации включают:

MemoryCheckCommand

Инструмент командной строки для выполнения динамического анализа. Команды тестов будут запускаться через этот инструмент.

  • Сценарий CTest переменная: CTEST_MEMORYCHECK_COMMAND
  • CTest модульная переменная: MEMORYCHECK_COMMAND
MemoryCheckCommandOptions

Укажите параметры командной строки для инструмента MemoryCheckCommand. Они будут размещены перед командной строкой теста.

  • Сценарий CTest переменная: CTEST_MEMORYCHECK_COMMAND_OPTIONS
  • CTest модульная переменная: MEMORYCHECK_COMMAND_OPTIONS
MemoryCheckType

Укажите тип проверки памяти для выполнения.

  • Сценарий CTest переменная: CTEST_MEMORYCHECK_TYPE
  • CTest модульная переменная: MEMORYCHECK_TYPE
MemoryCheckSanitizerOptions

Укажите параметры санитайзеров при запуске с билдом, включающим санитайзеры.

  • Сценарий CTest переменная: CTEST_MEMORYCHECK_SANITIZER_OPTIONS
  • CTest модульная переменная: MEMORYCHECK_SANITIZER_OPTIONS
MemoryCheckSuppressionFile

Укажите файл, содержащий правила подавления для инструмента MemoryCheckCommand. Он будет передан с параметрами, подходящими для данного инструмента.

  • Сценарий CTest переменная: CTEST_MEMORYCHECK_SUPPRESSIONS_FILE
  • CTest модульная переменная: MEMORYCHECK_SUPPRESSIONS_FILE

Дополнительные настройки конфигурации включают:

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
CDashVersion

Укажите версию CDash на сервере.

  • Сценарий CTest переменная: нет, обнаружено из сервера
  • CTest модульная переменная: CTEST_CDASH_VERSION
CTestSubmitRetryCount

Укажите количество попыток повторной отправки при сбое сети.

  • Сценарий CTest переменная: нет, используйте опцию ctest_submit() RETRY_COUNT.
  • CTest модульная переменная: CTEST_SUBMIT_RETRY_COUNT
CTestSubmitRetryDelay

Укажите задержку перед повторной отправкой при сбое сети.

  • Сценарий CTest переменная: нет, используйте опцию ctest_submit() RETRY_DELAY.
  • CTest модульная переменная: CTEST_SUBMIT_RETRY_DELAY
CurlOptions

Укажите список опций, разделенных точкой с запятой, для управления библиотекой Curl, которую CTest использует для внутреннего подключения к серверу. Возможные опции — CURLOPT_SSL_VERIFYPEER_OFF и CURLOPT_SSL_VERIFYHOST_OFF.

  • Сценарий CTest переменная: CTEST_CURL_OPTIONS
  • CTest модульная переменная: CTEST_CURL_OPTIONS
DropLocation

Путь на сервере панели мониторинга для отправки данных.

  • Сценарий CTest переменная: CTEST_DROP_LOCATION
  • CTest модульная переменная: DROP_LOCATION если задано, иначе CTEST_DROP_LOCATION
DropMethod

Укажите метод отправки результатов на сервер панели мониторинга. Значение может быть cp, ftp, http, https, scp, или xmlrpc (если CMake был скомпилирован с поддержкой этого).

  • Сценарий CTest переменная: CTEST_DROP_METHOD
  • CTest модульная переменная: DROP_METHOD если задано, иначе CTEST_DROP_METHOD
DropSite

Имя сервера панели мониторинга (для ftp, http, и https, scp, и xmlrpc).

  • Сценарий CTest переменная: CTEST_DROP_SITE
  • CTest модульная переменная: DROP_SITE если задано, иначе CTEST_DROP_SITE
DropSitePassword

Пароль для входа на сервер панели мониторинга, если таковой есть (для ftp, http, и https).

  • Сценарий CTest переменная: CTEST_DROP_SITE_PASSWORD
  • CTest модульная переменная: DROP_SITE_PASSWORD если задано, иначе CTEST_DROP_SITE_PASWORD
DropSiteUser

Имя пользователя для входа на сервер панели мониторинга, если таковой есть (для ftp, http, и https).

  • Сценарий CTest переменная: CTEST_DROP_SITE_USER
  • CTest модульная переменная: DROP_SITE_USER если задано, иначе CTEST_DROP_SITE_USER
IsCDash

Укажите, является ли сервер панели мониторинга CDash или более старой реализацией сервера панели мониторинга, требующей TriggerSite.

  • Сценарий CTest переменная: CTEST_DROP_SITE_CDASH
  • CTest модульная переменная: CTEST_DROP_SITE_CDASH
ScpCommand

scp инструмент командной строки для использования, когда DropMethod — scp.

  • Сценарий CTest переменная: CTEST_SCP_COMMAND
  • CTest модульная переменная: SCPCOMMAND
Site

Опишите сайт хоста клиента панели мониторинга с помощью короткой строки. (Имя хоста, домен и т. д.)

  • Сценарий CTest переменная: CTEST_SITE
  • CTest модульная переменная: SITE, инициализирована командой site_name()
TriggerSite

Запись опции для поддержки более старых реализаций серверов панелей мониторинга. Не используется, когда IsCDash имеет значение true.

  • Сценарий CTest переменная: CTEST_TRIGGER_SITE
  • CTest модульная переменная: TRIGGER_SITE если задано, иначе CTEST_TRIGGER_SITE

См. также

Для получения помощи по использованию CMake доступны следующие ресурсы:

Главная страница

https://cmake.org

Основная стартовая точка для изучения 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

Spec-Zone.ru

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