Spec-Zone.ru › CMake 3.12

ctest(1)

  • Синопсис
  • Описание
  • Параметры
  • Краткое описание метки и подпроекта
  • Режим сборки и тестирования
  • Клиент панели управления
    • Шаги клиента панели управления
    • Режимы клиента панели управления
    • Клиент панели управления через командную строку CTest
    • Клиент панели управления через скрипт CTest
  • Настройка клиента панели управления
    • Шаг запуска CTest
    • Шаг обновления CTest
    • Шаг конфигурации CTest
    • Шаг сборки CTest
    • Шаг тестирования CTest
    • Шаг анализа покрытия CTest
    • Шаг проверки памяти CTest
    • Шаг отправки CTest
  • См. также

Синопсис

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
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 Configure

В Сценарии 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 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
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 является истинным.

  • Сценарий 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. Список предназначен только для участников, но можно подписаться на странице 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

Spec-Zone.ru

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