Spec-Zone.ru › CMake 3.14

ctest(1)

  • Краткое описание
  • Описание
  • Параметры
  • Краткое описание тегов и подпроектов
  • Режим сборки и тестирования
  • Клиент панели мониторинга

    • Шаги клиента панели мониторинга
    • Режимы клиента панели мониторинга
    • Клиент панели мониторинга через командную строку CTest
    • Клиент панели мониторинга через скрипт CTest
  • Настройка клиента панели мониторинга

    • Шаг запуска CTest
    • Шаг обновления CTest
    • Шаг конфигурирования CTest
    • Шаг сборки CTest
    • Шаг тестирования CTest
    • Шаг покрытия кода CTest
    • Шаг проверки памяти CTest
    • Шаг отправки CTest
  • Показать как JSON-модель объекта
  • См. также

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

ctest [<options>]
ctest --build-and-test <path-to-source> <path-to-build>
      --build-generator <generator> [<options>...]
      [--build-options <opts>...] [--test-command <command> [<args>...]]
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».

--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[=<format>]

Отключить фактическое выполнение тестов.

Этот параметр указывает CTest отобразить тесты, которые будут запущены, но не запускать их. Полезно в сочетании с параметрами -R и -E.

<format> может принимать следующие значения.

human

Вывод в удобочитаемом формате. Эта стабильность не гарантируется. Это значение по умолчанию.

json-v1

Выгрузить информацию о тесте в формате JSON. См. Отображение в формате JSON Object Model.

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

Установить стандартное время ожидания для тестов.

Этот параметр устанавливает время ожидания для всех тестов, у которых не задано время ожидания с помощью свойства TIMEOUT.

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

Предельное время в секундах

Клиент панели мониторинга

CTest может работать как клиент приложения панели мониторинга качества программного обеспечения CDash. Как клиент панели мониторинга CTest выполняет последовательность шагов для конфигурирования, сборки и тестирования программного обеспечения, а затем отправляет результаты на сервер CDash. Командная строка, используемая для отправки в CDash, имеет следующий вид:

ctest (-D <dashboard> | -M <model> -T <action> | -S <script> | -SP <script>)
      [-- <dashboard-options>...]

Опции для клиента панели мониторинга включают:

--track <track>

Укажите дорожку, в которую нужно отправить панель мониторинга.

Отправить панель мониторинга в указанную дорожку вместо стандартной. По умолчанию панель мониторинга отправляется в дорожки "Ежедневный сбор", "Экспериментальная" или "Непрерывный", но с помощью этой опции можно указать любую дорожку.

-A <file>, --add-notes <file>

Добавить файл с заметками при отправке.

Эта опция сообщает CTest включить файл с заметками при отправке панели мониторинга.

--tomorrow-tag

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

Это полезно, если сборка не завершится за один день.

--extra-submit <file>[;<file>]

Отправить дополнительные файлы на панель мониторинга.

Эта опция отправит дополнительные файлы на панель мониторинга.

--http1.0

Отправить, используя HTTP 1.0.

Эта опция заставит CTest использовать HTTP 1.0 для отправки файлов на панель мониторинга вместо HTTP 1.1.

--no-compress-output

Не сжимать выходные данные тестов при отправке.

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

Шаги клиента панели мониторинга

CTest определяет упорядоченный список шагов тестирования, некоторые или все из которых могут быть выполнены как клиентом панели мониторинга:

Start

Начать новую отправку на панель мониторинга, составленную из результатов, записанных следующими шагами. См. раздел Шаг запуска CTest ниже.

Update

Обновить дерево исходных файлов из хранилища контроля версий. Зафиксировать старые и новые версии и список обновленных исходных файлов. См. раздел Шаг обновления CTest ниже.

Configure

Настроить программное обеспечение, выполнив команду в дереве сборки. Записать журнал вывода конфигурации. См. раздел Шаг конфигурации CTest ниже.

Build

Собрать программное обеспечение, выполнив команду в дереве сборки. Записать журнал сборки, определить предупреждения и ошибки. См. раздел Шаг сборки CTest ниже.

Test

Протестировать программное обеспечение, загрузив CTestTestfile.cmake из дерева сборки и выполнив определенные тесты. Записать вывод и результат каждого теста. См. раздел Шаг тестирования CTest ниже.

Coverage

Вычислить покрытие исходного кода, запустив инструмент анализа покрытия и записав его вывод. См. раздел Шаг покрытия CTest ниже.

MemCheck

Выполнить набор тестов программного обеспечения с помощью инструмента проверки памяти. Записать вывод тестов, результаты и проблемы, сообщенные инструментом. См. раздел Шаг проверки памяти CTest ниже.

Submit

Отправить результаты, записанные другими шагами тестирования, на сервер панели мониторинга качества программного обеспечения. См. раздел Шаг отправки CTest ниже.

Режимы работы клиента панели мониторинга

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

Начать новую отправку на панель мониторинга, составленную из результатов, записанных следующими шагами.

В скрипте 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 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), это задаёт конфигурацию по умолчанию для сборки, когда опция -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 Test

В Скрипте 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 Coverage

В Сценарии 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

Устаревшая опция. Не используется.

  • Сценарий 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

Устаревшая опция. Если SubmitURL не установлена, она строится из DropMethod, DropSiteUser, DropSitePassword, DropSite и DropLocation.

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

Устаревшая опция. Если SubmitURL не установлена, она строится из DropMethod, DropSiteUser, DropSitePassword, DropSite и DropLocation.

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

Устаревшая опция. Если SubmitURL не установлена, она строится из DropMethod, DropSiteUser, DropSitePassword, DropSite и DropLocation.

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

Устаревшая опция. Если SubmitURL не установлена, она строится из DropMethod, DropSiteUser, DropSitePassword, DropSite и DropLocation.

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

Устаревшая опция. Если SubmitURL не установлена, она строится из DropMethod, DropSiteUser, DropSitePassword, DropSite и DropLocation.

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

Устаревшая опция. Не используется.

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

Устаревшая опция. Не используется.

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

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

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

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

  • Сценарий CTest переменная: CTEST_SUBMIT_URL
  • CTest модульная переменная: SUBMIT_URL если установлена, иначе CTEST_SUBMIT_URL
TriggerSite

Устаревшая опция. Не используется.

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

Показать как модель объекта JSON

Если указана командная строка --show-only=json-v1, информация о тесте выводится в формате JSON. Модель объекта JSON версии 1.0 определяется следующим образом:

kind

Строка “ctestInfo”.

version

Объект JSON, определяющий компоненты версии. Его члены:

major

Целое неотрицательное число, определяющее главный компонент версии.

minor

Целое неотрицательное число, определяющее второстепенный компонент версии.

backtraceGraph

Объект JSON, представляющий информацию о стеке вызовов с последующими членами:

commands

Список имён команд.

files

Список имён файлов.

nodes

Список узлов в виде объектов JSON с членами:

command

Индекс в члене commands объекта backtraceGraph.

file

Индекс в члене files объекта backtraceGraph.

line

Номер строки в файле, где был добавлен элемент стека вызовов.

parent

Индекс в члене nodes объекта backtraceGraph, представляющий родительский элемент в графе.

tests

Массив JSON, перечисляющий информацию о каждом тесте. Каждый элемент — объект JSON с членами:

name

Имя теста.

config

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

command

Список, где первый элемент — команда теста, а последующие — аргументы команды.

backtrace

Индекс в члене nodes объекта backtraceGraph.

properties

Свойства теста. Могут содержать ключи для каждого из поддерживаемых свойств тестов.

См. также

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

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

https://cmake.org

Основная стартовая точка для ознакомления с CMake.

Онлайн-документация и ресурсы сообщества

https://cmake.org/documentation

На этой странице можно найти ссылки на доступную документацию и ресурсы сообщества.

Список рассылки

https://cmake.org/mailing-lists

Для получения помощи и обсуждения использования cmake доступен список рассылки по адресу cmake@cmake.org. Список предназначен только для участников, но можно подписаться на нём на сайте CMake. Сначала прочитайте полную документацию по адресу https://cmake.org, прежде чем задавать вопросы на листе рассылки.

© 2000–2020 Kitware, Inc. and Contributors
Licensed under the BSD 3-clause License.
https://cmake.org/cmake/help/v3.14/manual/ctest.1.html

Spec-Zone.ru

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