Spec-Zone.ru › CMake 3.11

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 и выполнить тест панели мониторинга. Все тесты имеют вид <Режим><Тест>, где Режим может быть Экспериментальный, Ежедневный и Непрерывный, а Тест может быть Запуск, Обновление, Настройка, Сборка, Тест, Покрытие и Отправка.

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

-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 или шаг могут быть пустыми. Дополнительно можно указать файл, содержащий тот же синтаксис, что и командная строка.

-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 это означает, что в неинтерактивном режиме все всплывающие окна отладки системы блокируются. В режиме панели мониторинга (Экспериментальный, Ежедневный, Непрерывный) по умолчанию используется неинтерактивный режим. При простом запуске тестов, не предназначенных для панели мониторинга, по умолчанию разрешаются всплывающие окна и интерактивная отладка.

--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 sec*proc», а «SubprojectB» — «10 sec*proc», то CTest выделил приблизительно в 10 раз больше времени процессора/ядра для запуска тестов для «SubprojectA», чем для «SubprojectB» (например, поэтому, если будут затрачены усилия на снижение стоимости набора тестов для всего проекта, то снижение стоимости набора тестов для «SubprojectA» будет иметь, вероятно, большее влияние, чем усилия по снижению стоимости набора тестов для «SubprojectB»).

Режим сборки и тестирования

CTest предоставляет подпись командной строки для конфигурации (т. е. выполнения cmake), сборки и/или выполнения теста:

ctest --build-and-test <path-to-source> <path-to-build>
      --build-generator <generator> [<options>...] [-- <build-options>...]
      [--test-command <test>]

Шаги конфигурации и тестирования необязательны. Аргументы этой командной строки — каталоги исходных файлов и библиотек. Опция --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

Добавить дополнительные параметры к этапу сборки.

Этот параметр должен быть последним, за исключением --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 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 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 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

Укажите версию 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/Wiki/CMake_FAQ

В вики содержатся ответы на часто задаваемые вопросы.

Онлайн-документация

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.11/manual/ctest.1.html

Spec-Zone.ru

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