ctest(1)
- Синопсис
- Описание
- Параметры
- Резюме меток и подпроектов
- Режим сборки и тестирования
- Клиент панели мониторинга
- Настройка клиента панели мониторинга
- См. также
Синопсис
ctest [<options>]
ctest <path-to-source> <path-to-build> --build-generator <generator>
[<options>...] [-- <build-options>...] [--test-command <test>]
ctest (-D <dashboard> | -M <model> -T <action> | -S <script> | -SP <script>)
[-- <dashboard-options>...]
Описание
Исполняемый файл “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
-
Скрипт CTest переменная:
-
SourceDirectory -
Полный путь к дереву исходного кода проекта.
-
Скрипт CTest переменная:
CTEST_SOURCE_DIRECTORY -
CTestпеременная модуля:PROJECT_SOURCE_DIR
-
Скрипт CTest переменная:
Шаг обновления CTest
В Скрипте CTest этот шаг выполняется командой ctest_update(). Аргументы к команде могут указывать некоторые настройки шага.
Настройки конфигурации для указания инструмента контроля версий включают:
-
BZRCommand -
bzrинструмент командной строки, используемый, если дерево исходного кода администрируется с помощью Bazaar.-
Сценарий CTest переменная:
CTEST_BZR_COMMAND -
CTestпеременная модуля: нет
-
Сценарий CTest переменная:
-
BZRUpdateOptions -
Параметры командной строки для
BZRCommandпри обновлении исходного кода.-
Сценарий CTest переменная:
CTEST_BZR_UPDATE_OPTIONS -
CTestпеременная модуля: нет
-
Сценарий CTest переменная:
-
CVSCommand -
cvsинструмент командной строки, используемый, если дерево исходного кода администрируется с помощью CVS.-
Сценарий CTest переменная:
CTEST_CVS_COMMAND -
CTestпеременная модуля:CVSCOMMAND
-
Сценарий CTest переменная:
-
CVSUpdateOptions -
Параметры командной строки для
CVSCommandпри обновлении исходного кода.-
Сценарий CTest переменная:
CTEST_CVS_UPDATE_OPTIONS -
CTestпеременная модуля:CVS_UPDATE_OPTIONS
-
Сценарий CTest переменная:
-
GITCommand -
gitинструмент командной строки, используемый, если дерево исходного кода администрируется с помощью Git.-
Сценарий CTest переменная:
CTEST_GIT_COMMAND -
CTestпеременная модуля:GITCOMMAND
Дерево исходного кода обновляется с помощью
git fetchиgit reset --hardвFETCH_HEAD. Результат идентиченgit pull, за исключением того, что любые локальные изменения перезаписываются. ИспользуйтеGITUpdateCustomдля указания другого подхода. -
Сценарий CTest переменная:
-
GITInitSubmodules -
Если установлено, CTest обновит подмодули репозитория перед обновлением.
-
Сценарий CTest переменная:
CTEST_GIT_INIT_SUBMODULES -
CTestпеременная модуля:CTEST_GIT_INIT_SUBMODULES
-
Сценарий CTest переменная:
-
GITUpdateCustom -
Укажите пользовательскую командную строку (в формате списка, разделённого точкой с запятой), которую необходимо запустить в дереве исходного кода (рабочей области Git), чтобы обновить его вместо запуска
GITCommand.-
Сценарий CTest переменная:
CTEST_GIT_UPDATE_CUSTOM -
CTestпеременная модуля:CTEST_GIT_UPDATE_CUSTOM
-
Сценарий CTest переменная:
-
GITUpdateOptions -
Параметры командной строки для
GITCommandпри обновлении исходного кода.-
Сценарий CTest переменная:
CTEST_GIT_UPDATE_OPTIONS -
CTestпеременная модуля:GIT_UPDATE_OPTIONS
-
Сценарий CTest переменная:
-
HGCommand -
hgинструмент командной строки, используемый, если дерево исходного кода администрируется с помощью Mercurial.-
Сценарий CTest переменная:
CTEST_HG_COMMAND -
CTestпеременная модуля: нет
-
Сценарий CTest переменная:
-
HGUpdateOptions -
Параметры командной строки для
HGCommandпри обновлении исходного кода.-
Сценарий CTest переменная:
CTEST_HG_UPDATE_OPTIONS -
CTestпеременная модуля: нет
-
Сценарий CTest переменная:
-
P4Client -
Значение параметра
-cдляP4Command.-
Сценарий CTest переменная:
CTEST_P4_CLIENT -
CTestпеременная модуля:CTEST_P4_CLIENT
-
Сценарий CTest переменная:
-
P4Command -
p4инструмент командной строки, используемый, если дерево исходного кода администрируется с помощью Perforce.-
Сценарий CTest переменная:
CTEST_P4_COMMAND -
CTestпеременная модуля:P4COMMAND
-
Сценарий CTest переменная:
-
P4Options -
Параметры командной строки для
P4Commandдля всех вызовов.-
Сценарий CTest переменная:
CTEST_P4_OPTIONS -
CTestпеременная модуля:CTEST_P4_OPTIONS
-
Сценарий CTest переменная:
-
P4UpdateCustom -
Укажите пользовательскую командную строку (в формате списка, разделённого точкой с запятой), которую необходимо запустить в дереве исходного кода (дереве Perforce), чтобы обновить его вместо запуска
P4Command.- Сценарий CTest переменная: нет
-
CTestпеременная модуля:CTEST_P4_UPDATE_CUSTOM
-
P4UpdateOptions -
Параметры командной строки для
P4Commandпри обновлении исходного кода.-
Сценарий CTest переменная:
CTEST_P4_UPDATE_OPTIONS -
CTestпеременная модуля:CTEST_P4_UPDATE_OPTIONS
-
Сценарий CTest переменная:
-
SVNCommand -
svnинструмент командной строки, используемый, если дерево исходного кода администрируется с помощью Subversion.-
Сценарий CTest переменная:
CTEST_SVN_COMMAND -
CTestпеременная модуля:SVNCOMMAND
-
Сценарий CTest переменная:
-
SVNOptions -
Параметры командной строки для
SVNCommandдля всех вызовов.-
Сценарий CTest переменная:
CTEST_SVN_OPTIONS -
CTestпеременная модуля:CTEST_SVN_OPTIONS
-
Сценарий CTest переменная:
-
SVNUpdateOptions -
Параметры командной строки для
SVNCommandпри обновлении исходного кода.-
Сценарий CTest переменная:
CTEST_SVN_UPDATE_OPTIONS -
CTestпеременная модуля:SVN_UPDATE_OPTIONS
-
Сценарий CTest переменная:
-
UpdateCommand
-
Укажите командную строку инструмента управления версиями, не определяя систему управления версиями (VCS), которая управляет деревом исходного кода.
-
Скрипт CTest переменная:
CTEST_UPDATE_COMMAND -
CTestпеременная модуля:<VCS>COMMANDприUPDATE_TYPEравно<vcs>, иначеUPDATE_COMMAND
-
Скрипт CTest переменная:
-
UpdateOptions -
Командная строка параметров для
UpdateCommand.-
Скрипт CTest переменная:
CTEST_UPDATE_OPTIONS -
CTestпеременная модуля:<VCS>_UPDATE_OPTIONSприUPDATE_TYPEравно<vcs>, иначеUPDATE_OPTIONS
-
Скрипт CTest переменная:
-
UpdateType -
Укажите систему управления версиями, которая управляет деревом исходного кода, если её нельзя определить автоматически. Значение может быть
bzr,cvs,git,hg,p4, илиsvn.- Скрипт CTest переменная: ни одна, определено из дерева исходного кода
-
CTestпеременная модуля:UPDATE_TYPEесли задано, иначеCTEST_UPDATE_TYPE
-
UpdateVersionOnly -
Укажите, что вы хотите, чтобы команда обновления системы управления версиями обнаруживала только текущую проверенную версию, а не обновлялась до другой версии.
-
Скрипт CTest переменная:
CTEST_UPDATE_VERSION_ONLY
-
Скрипт CTest переменная:
Дополнительные параметры конфигурации включают:
-
NightlyStartTime -
В режиме панели
Nightlyукажите «время начала ночной сборки». В системах централизованного управления версиями (cvsиsvn) шагUpdateпроверяет версию программного обеспечения на эту дату и время, чтобы несколько клиентов выбрали общую версию для тестирования. В распределенных системах управления версиями это не определено, поэтому настройка игнорируется.-
Скрипт CTest переменная:
CTEST_NIGHTLY_START_TIME -
CTestпеременная модуля:NIGHTLY_START_TIMEесли задана, иначеCTEST_NIGHTLY_START_TIME
-
Скрипт CTest переменная:
Шаг CTest Configure
В Скрипте CTest, команда ctest_configure() выполняет этот шаг. Аргументы команды могут указывать некоторые из параметров шага.
Параметры конфигурации включают:
-
ConfigureCommand -
Командная строка для запуска процесса конфигурирования программного обеспечения. Она будет выполнена в месте, указанном настройкой
BuildDirectory.-
Скрипт CTest переменная:
CTEST_CONFIGURE_COMMAND -
CTestпеременная модуля:CMAKE_COMMANDпослеPROJECT_SOURCE_DIR
-
Скрипт CTest переменная:
-
LabelsForSubprojects -
Укажите список меток, разделённых точкой с запятой, которые будут рассматриваться как подпроекты. Эта сопоставление будет передано CDash при отправке результатов конфигурирования, тестирования или сборки.
-
Скрипт CTest переменная:
CTEST_LABELS_FOR_SUBPROJECTS -
CTestпеременная модуля:CTEST_LABELS_FOR_SUBPROJECTS
-
Скрипт CTest переменная:
Шаг CTest 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
-
Скрипт CTest переменная:
-
LabelsForSubprojects -
Укажите список меток, разделённых точкой с запятой, которые будут рассматриваться как подпроекты. Это отображение будет передано CDash при отправке результатов конфигурирования, тестирования или сборки.
-
Скрипт CTest переменная:
CTEST_LABELS_FOR_SUBPROJECTS -
CTestпеременная модуля:CTEST_LABELS_FOR_SUBPROJECTS
-
Скрипт CTest переменная:
-
MakeCommand -
Командная строка для запуска процесса сборки программного обеспечения. Она будет выполнена в месте, указанном настройкой
BuildDirectory.-
Скрипт CTest переменная:
CTEST_BUILD_COMMAND -
CTestпеременная модуля:MAKECOMMAND, инициализированная командойbuild_command()
-
Скрипт CTest переменная:
-
UseLaunchers -
Для деревьев сборки, сгенерированных CMake с использованием одного из генераторов Makefile или
Ninjaгенератор, укажите, включена ли функцияCTEST_USE_LAUNCHERSмодулемCTestUseLaunchers(также включен модулемCTest). При включении сгенерированная система сборки обернёт каждое вызов компилятора, компоновщика или пользовательской командной строки «запускателем», который взаимодействует с CTest через переменные окружения и файлы для отчётности о детализированных предупреждениях и ошибках сборки. В противном случае CTest должен «извлекать» логи сборки для диагностики.-
Скрипт CTest переменная:
CTEST_USE_LAUNCHERS -
CTestпеременная модуля:CTEST_USE_LAUNCHERS
-
Скрипт CTest переменная:
Шаг CTest Test
В Скрипте CTest, команда ctest_test() выполняет этот шаг. Аргументы команды могут указывать некоторые из параметров шага.
Параметры конфигурации включают:
-
LabelsForSubprojects -
Укажите список меток, разделенных точкой с запятой, которые будут обрабатываться как подпроекты. Это отображение будет передано в CDash при отправке результатов конфигурации, тестирования или сборки.
-
Скрипт CTest переменная:
CTEST_LABELS_FOR_SUBPROJECTS -
CTestпеременная модуля:CTEST_LABELS_FOR_SUBPROJECTS
-
Скрипт CTest переменная:
-
TestLoad -
Во время выполнения тестов параллельно (например, с
-j), старайтесь не запускать тесты, которые могут привести к превышению заданного порога загрузки ЦП.-
Скрипт CTest переменная:
CTEST_TEST_LOAD -
CTestпеременная модуля:CTEST_TEST_LOAD
-
Скрипт CTest переменная:
-
TimeOut -
Значение по умолчанию для таймаута каждого теста, если не указано свойством теста
TIMEOUT.-
Скрипт CTest переменная:
CTEST_TEST_TIMEOUT -
CTestпеременная модуля:DART_TESTING_TIMEOUT
-
Скрипт CTest переменная:
Шаг CTest Coverage
В скрипте CTest этот шаг выполняется командой ctest_coverage(). Аргументы команды могут указать некоторые параметры шага.
Настройки конфигурации включают:
-
CoverageCommand -
Инструмент командной строки для выполнения анализа покрытия программного обеспечения. Он будет выполнен в местоположении, указанном настройкой
BuildDirectory.-
Скрипт CTest переменная:
CTEST_COVERAGE_COMMAND -
CTestпеременная модуля:COVERAGE_COMMAND
-
Скрипт CTest переменная:
-
CoverageExtraFlags -
Укажите параметры командной строки для инструмента
CoverageCommand.-
Скрипт CTest переменная:
CTEST_COVERAGE_EXTRA_FLAGS -
CTestпеременная модуля:COVERAGE_EXTRA_FLAGS
Эти параметры являются первыми аргументами, передаваемыми инструменту
CoverageCommand. -
Скрипт CTest переменная:
Шаг CTest MemCheck
В скрипте CTest этот шаг выполняется командой ctest_memcheck(). Аргументы команды могут указать некоторые параметры шага.
Настройки конфигурации включают:
-
MemoryCheckCommand -
Инструмент командной строки для выполнения динамического анализа. Команды тестов будут запускаться через этот инструмент.
-
Скрипт CTest переменная:
CTEST_MEMORYCHECK_COMMAND -
CTestпеременная модуля:MEMORYCHECK_COMMAND
-
Скрипт CTest переменная:
-
MemoryCheckCommandOptions -
Укажите параметры командной строки для инструмента
MemoryCheckCommand. Они будут помещены перед строкой команды теста.-
Скрипт CTest переменная:
CTEST_MEMORYCHECK_COMMAND_OPTIONS -
CTestпеременная модуля:MEMORYCHECK_COMMAND_OPTIONS
-
Скрипт CTest переменная:
-
MemoryCheckType -
Укажите тип проверки памяти для выполнения.
-
Скрипт CTest переменная:
CTEST_MEMORYCHECK_TYPE -
CTestпеременная модуля:MEMORYCHECK_TYPE
-
Скрипт CTest переменная:
-
MemoryCheckSanitizerOptions -
Укажите параметры для инструментов проверки ошибок при запуске с поддержкой проверки ошибок.
-
Скрипт CTest переменная:
CTEST_MEMORYCHECK_SANITIZER_OPTIONS -
CTestпеременная модуля:MEMORYCHECK_SANITIZER_OPTIONS
-
Скрипт CTest переменная:
-
MemoryCheckSuppressionFile -
Укажите файл со правилами подавления для инструмента
MemoryCheckCommand. Он будет передан с параметрами, соответствующими инструменту.-
Скрипт CTest переменная:
CTEST_MEMORYCHECK_SUPPRESSIONS_FILE -
CTestпеременная модуля:MEMORYCHECK_SUPPRESSIONS_FILE
-
Скрипт CTest переменная:
Дополнительные параметры конфигурации включают:
-
BoundsCheckerCommand -
Укажите
MemoryCheckCommand, совместимый с Bounds Checker.- Скрипт CTest переменная: none
-
CTestпеременная модуля: none
-
PurifyCommand -
Укажите
MemoryCheckCommand, совместимый с Purify.- Скрипт CTest переменная: none
-
CTestпеременная модуля:PURIFYCOMMAND
-
ValgrindCommand -
Укажите
MemoryCheckCommand, совместимый с Valgrind.- Скрипт CTest переменная: none
-
CTestпеременная модуля:VALGRIND_COMMAND
-
ValgrindCommandOptions -
Укажите параметры командной строки для инструмента
ValgrindCommand. Они будут помещены перед строкой команды теста.- Скрипт CTest переменная: none
-
CTestпеременная модуля:VALGRIND_COMMAND_OPTIONS
Шаг CTest Submit
В скрипте CTest этот шаг выполняется командой ctest_submit(). Аргументы команды могут указать некоторые параметры шага.
Настройки конфигурации включают:
-
BuildName -
Опишите платформу клиента для панели мониторинга с помощью короткой строки. (Операционная система, компилятор и т. д.)
-
Сценарий CTest переменная:
CTEST_BUILD_NAME -
CTestмодуль переменная:BUILDNAME
-
Сценарий CTest переменная:
-
CDashVersion -
Укажите версию CDash на сервере.
- Сценарий CTest переменная: ни одной, обнаружена с сервера
-
CTestмодуль переменная:CTEST_CDASH_VERSION
-
CTestSubmitRetryCount -
Укажите количество попыток повторной отправки при сбое сети.
-
Сценарий CTest переменная: ни одной, используйте опцию
ctest_submit()RETRY_COUNT. -
CTestмодуль переменная:CTEST_SUBMIT_RETRY_COUNT
-
Сценарий CTest переменная: ни одной, используйте опцию
-
CTestSubmitRetryDelay -
Укажите задержку перед повторной отправкой при сбое сети.
-
Сценарий CTest переменная: ни одной, используйте опцию
ctest_submit()RETRY_DELAY. -
CTestмодуль переменная:CTEST_SUBMIT_RETRY_DELAY
-
Сценарий CTest переменная: ни одной, используйте опцию
-
CurlOptions -
Укажите список опций, разделённых точкой с запятой, для управления библиотекой Curl, которую CTest использует для подключения к серверу. Возможные опции —
CURLOPT_SSL_VERIFYPEER_OFFиCURLOPT_SSL_VERIFYHOST_OFF.-
Сценарий CTest переменная:
CTEST_CURL_OPTIONS -
CTestмодуль переменная:CTEST_CURL_OPTIONS
-
Сценарий CTest переменная:
-
DropLocation -
Путь на сервере панели мониторинга для отправки отчёта.
-
Сценарий CTest переменная:
CTEST_DROP_LOCATION -
CTestмодуль переменная:DROP_LOCATIONесли задано, иначеCTEST_DROP_LOCATION
-
Сценарий CTest переменная:
-
DropMethod -
Укажите метод, с помощью которого результаты должны быть отправлены на сервер панели мониторинга. Значение может быть
cp,ftp,http,https,scp, илиxmlrpc(если CMake был скомпилирован с поддержкой этого).-
Сценарий CTest переменная:
CTEST_DROP_METHOD -
CTestмодуль переменная:DROP_METHODесли задано, иначеCTEST_DROP_METHOD
-
Сценарий CTest переменная:
-
DropSite -
Имя сервера панели мониторинга (для
ftp,http, иhttps,scp, иxmlrpc).-
Сценарий CTest переменная:
CTEST_DROP_SITE -
CTestмодуль переменная:DROP_SITEесли задано, иначеCTEST_DROP_SITE
-
Сценарий CTest переменная:
-
DropSitePassword -
Пароль для входа на сервер панели мониторинга, если требуется (для
ftp,http, иhttps).-
Сценарий CTest переменная:
CTEST_DROP_SITE_PASSWORD -
CTestмодуль переменная:DROP_SITE_PASSWORDесли задано, иначеCTEST_DROP_SITE_PASWORD
-
Сценарий CTest переменная:
-
DropSiteUser -
Имя пользователя для входа на сервер панели мониторинга, если требуется (для
ftp,http, иhttps).-
Сценарий CTest переменная:
CTEST_DROP_SITE_USER -
CTestмодуль переменная:DROP_SITE_USERесли задано, иначеCTEST_DROP_SITE_USER
-
Сценарий CTest переменная:
-
IsCDash -
Укажите, является ли сервер панели мониторинга CDash или более старой реализацией сервера панели мониторинга, требующей
TriggerSite.-
Сценарий CTest переменная:
CTEST_DROP_SITE_CDASH -
CTestмодуль переменная:CTEST_DROP_SITE_CDASH
-
Сценарий CTest переменная:
-
ScpCommand -
scpинструмент командной строки для использования, когдаDropMethodравенscp.-
Сценарий CTest переменная:
CTEST_SCP_COMMAND -
CTestмодуль переменная:SCPCOMMAND
-
Сценарий CTest переменная:
-
Site -
Опишите хост-сайт клиента панели мониторинга с помощью короткой строки. (Имя хоста, домен и т. д.)
-
Сценарий CTest переменная:
CTEST_SITE -
CTestмодуль переменная:SITE, инициализировано командойsite_name()
-
Сценарий CTest переменная:
-
TriggerSite -
Запись опции для поддержки более старых реализаций сервера панели мониторинга. Не используется, когда
IsCDashравно true.-
Сценарий CTest переменная:
CTEST_TRIGGER_SITE -
CTestмодуль переменная:TRIGGER_SITEесли задано, иначеCTEST_TRIGGER_SITE
-
Сценарий CTest переменная:
См. также
Следующие ресурсы помогут вам разобраться с CMake:
- Главная страница
-
Основная стартовая точка для изучения CMake.
- Часто задаваемые вопросы
-
https://cmake.org/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