Skip to content

test - Запуск тестов

Группа команд test обеспечивает запуск автоматизированного тестирования 1С-конфигураций: модульного (xUnit) и функционального (BDD) через фреймворк Vanessa-ADD, а также модульного через фреймворк YAxUnit.

bash
vrunner test <подкоманда> [опции] [аргументы]

Все три подкоманды умеют собирать покрытие кода тестами — см. Сбор покрытия тестами →.

xunit

Запускает модульные тесты через обработку xddTestRunner.epf (xUnit for 1C).

bash
vrunner test xunit [опции] [TESTSPATH]

Аргументы

АргументПеременная окруженияОписание
TESTSPATHVRUNNER_TESTSPATHПуть к каталогу или файлу с тестами, или к встроенным тестам (с --config-tests). Поддерживается макрос $addRoot — каталог установки vanessa-add

Опции

ОпцияПеременная окруженияОписание
--workspaceVRUNNER_WORKSPACEПуть к папке проекта для макросов $workspace (по умолчанию - текущий)
--pathxunitVRUNNER_PATHXUNITПуть к внешней обработке xddTestRunner.epf (по умолчанию из vanessa-add)
--reportsxunitVRUNNER_REPORTSXUNITПараметры формирования отчётов: Формат{Путь};Формат{Путь}подробнее
--reportxunit-Путь к каталогу с отчётом jUnit (устарел, используйте --reportsxunit)
--xddExitCodePath-Путь к файлу статуса (0=пройдены, 1=не пройдены)
--xddConfig-Путь к конфигурационному файлу xUnitFor1c
--testclient-Параметры тест-клиента: Пользователь:Пароль:Порт
--testclient-additional-Дополнительные параметры запуска тест-клиента
--config-testsVRUNNER_CONFIG_TESTSЗагружать тесты, встроенные в конфигурацию
--no-wait-Не ожидать завершения
--xdddebug-Выводить отладочные сообщения при прогоне
--no-shutdown-Не завершать 1С после выполнения тестов
--clear-reports-Очищать каталоги отчётов перед запуском
--ibconnectionVRUNNER_IBCONNECTIONСтрока подключения к ИБ (/F<путь> - файловая, /S<сервер>\<база> - серверная)
--db-userVRUNNER_DBUSERПользователь ИБ
--db-pwdVRUNNER_DBPWDПароль пользователя ИБ
--ibcmd-Использовать ibcmd вместо Конфигуратора
--v8versionVRUNNER_V8VERSIONВерсия платформы 1С
--uccodeVRUNNER_UCCODEКод разрешения блокировки
--languageVRUNNER_LANGUAGEЯзык платформы
--localeVRUNNER_LOCALEЯзык сеанса (локаль)
--nocacheuseVRUNNER_NOCACHEUSEНе использовать кеш платформы
--ordinaryappVRUNNER_ORDINARYAPPРежим запуска: 1 (толстый), 0 (тонкий), -1 (авто)
--additionalVRUNNER_ADDITIONALДополнительные параметры запуска платформы
--settingsVRUNNER_SETTINGSПуть к файлу настроек (JSON)

Подробнее о форматах строки подключения и ibcmd: Подключение к базе данных →

Формат reportsxunit

Параметр --reportsxunit задаёт список отчётов через точку с запятой:

junit{./build/reports/junit.xml};allure{./build/reports/allure}

Краткие форматы (регистр не важен) и соответствующие генераторы Vanessa-ADD:

Краткий форматГенератор Vanessa-ADD
junitГенераторОтчетаJUnitXML
allureГенераторОтчетаAllureXMLВерсия2
jsonГенераторОтчетаJSON
mxlГенераторОтчетаMXL
genericexecutionГенераторОтчетаGenericExecution

Вместо краткого формата можно указать полное имя генератора Vanessa-ADD (ГенераторОтчетаJUnitXML{путь} или GenerateReportJUnitXML{путь}) — в том числе генератора-плагина, которого нет в кратком списке.

Примеры

bash
# Запустить тесты и сформировать JUnit-отчёт
vrunner test xunit \
  --ibconnection /F./ib \
  --reportsxunit "jUnit{./build/reports/junit.xml}" \
  ./tests

# Тесты, встроенные в конфигурацию
vrunner test xunit \
  --ibconnection /F./ib \
  --config-tests \
  --reportsxunit "jUnit{./build/reports/junit.xml}"

# Встроенные дымовые тесты vanessa-add (макрос $addRoot)
vrunner test xunit \
  --ibconnection /F./ib \
  '$addRoot/tests/smoke'

# Запустить конкретный файл с тестами
vrunner test xunit \
  --ibconnection /F./ib \
  --xddExitCodePath ./build/status.txt \
  ./tests/MyTests.os

# С тест-клиентом (клиент-серверный режим)
vrunner test xunit \
  --ibconnection "/SMyServer\MyIB" \
  --testclient "Тест:password:1538" \
  --reportsxunit "jUnit{./build/reports/junit.xml}" \
  ./tests

yaxunit

Запускает модульные тесты через фреймворк YAxUnit. В отличие от xUnit, YAxUnit не требует внешней обработки-раннера: движок фреймворка и сами тесты подключаются к информационной базе как расширения конфигурации и исполняются внутри 1С:Предприятия.

bash
vrunner test yaxunit [опции]

Предварительная подготовка ИБ

Перед запуском в информационную базу должны быть загружены через cfe load (обновление конфигурации БД к базе выполняется по умолчанию):

  1. расширение-движок YAxUnit (.cfe со страницы релизов проекта);
  2. расширение(я) с тестовыми модулями — общими модулями, регистрирующими тесты в процедуре ИсполняемыеСценарии.

Без применения к базе (не указывайте --no-update-db) модули тестов не попадут в метаданные сеанса, и YAxUnit их не обнаружит. Движку также требуется отключённый безопасный режим (у загруженного расширения он выключен по умолчанию) — иначе он не сможет прочитать файл запуска.

Опции

Конфигурацию запуска YAxUnit можно задать двумя способами: передать готовый файл через --yaxunit-config (используется как есть) либо собрать её из опций фильтрации и отчёта, перечисленных ниже.

ОпцияПеременная окруженияОписание
--yaxunit-configVRUNNER_YAXUNIT_CONFIGПуть к готовому yaxunit.json — используется как есть, опции фильтрации и отчёта игнорируются
--extVRUNNER_YAXUNIT_EXTИмена расширений с тестами через запятую (filter.extensions)
--modules-Имена модулей с тестами через запятую (filter.modules)
--tests-Полные имена тестов через запятую в формате Модуль.Тест (filter.tests)
--tags-Теги тестов через запятую (filter.tags)
--suites-Имена наборов тестов через запятую (filter.suites)
--reportVRUNNER_YAXUNIT_REPORTПуть к файлу или каталогу отчёта (reportPath); если не указан — отчёт jUnit формируется во временном файле
--report-format-Формат отчёта: jUnit (по умолчанию), JSON, allure
--exitcodeVRUNNER_YAXUNIT_EXITCODEПуть к файлу кода возврата тестирования (0 - пройдены, 1 - есть ошибки)
--project-pathVRUNNER_PROJECT_PATHКорневой каталог проекта для зависимостей ФайлыПроекта (projectPath); по умолчанию - каталог запуска vrunner
--workspaceVRUNNER_WORKSPACEРабочий каталог пространства YAxUnit (workspacePath)
--show-report-Открывать форму отчёта после тестов (по умолчанию выключено)
--no-close-Не закрывать 1С:Предприятие после выполнения тестов
--no-wait-Не ожидать завершения
--ibconnectionVRUNNER_IBCONNECTIONСтрока подключения к ИБ (/F<путь> - файловая, /S<сервер>\<база> - серверная)
--db-userVRUNNER_DBUSERПользователь ИБ
--db-pwdVRUNNER_DBPWDПароль пользователя ИБ
--ibcmd-Использовать ibcmd вместо Конфигуратора
--v8versionVRUNNER_V8VERSIONВерсия платформы 1С
--uccodeVRUNNER_UCCODEКод разрешения блокировки
--languageVRUNNER_LANGUAGEЯзык платформы
--localeVRUNNER_LOCALEЯзык сеанса (локаль)
--nocacheuseVRUNNER_NOCACHEUSEНе использовать кеш платформы
--ordinaryappVRUNNER_ORDINARYAPPРежим запуска: 1 (толстый), 0 (тонкий), -1 (авто)
--additionalVRUNNER_ADDITIONALДополнительные параметры запуска платформы
--settingsVRUNNER_SETTINGSПуть к файлу настроек (JSON)

Подробнее о форматах строки подключения и ibcmd: Подключение к базе данных →

Фильтрация тестов

Опции --ext, --modules, --tests, --tags, --suites формируют секцию filter файла запуска YAxUnit и комбинируются по «И»: например, --ext МоиТесты --tags smoke запустит тесты с тегом smoke только из расширения МоиТесты. Если не задана ни одна опция фильтра, выполняются все обнаруженные тесты. При указании --yaxunit-config опции фильтрации не применяются — фильтр берётся из переданного файла.

Результат и код возврата

Команда работоспособна с минимумом параметров — достаточно строки подключения (расширения YAxUnit и тестов должны быть загружены в ИБ). Если путь к отчёту не задан, отчёт jUnit формируется во временном файле, после чего команда разбирает его и печатает короткое саммари в консоль:

YAxUnit: всего 12, успешно 11, провалено 1, ошибок 0, пропущено 0
  [x] МойМодуль.ПроверкаСложения [Сервер] — ожидали 4, получили 5

Код возврата команды: 0 — все тесты пройдены; ненулевой — есть провалы/ошибки либо отчёт не сформирован (например, не загружены движок или расширения с тестами). Это позволяет использовать команду в CI без дополнительных опций. Авто-саммари формируется для формата jUnit (по умолчанию); для прочих форматов выводится только путь к отчёту.

Примеры

bash
# Минимальный запуск: только подключение (отчёт во временный файл + саммари в консоль)
vrunner test yaxunit --ibconnection /F./ib

# Запустить все тесты из расширения и сформировать JUnit-отчёт
vrunner test yaxunit \
  --ibconnection /F./ib \
  --ext МоиТесты \
  --report ./build/reports/yaxunit.xml \
  --exitcode ./build/status.txt

# Запустить конкретные модули
vrunner test yaxunit \
  --ibconnection /F./ib \
  --modules МодульТестовКаталога,МодульТестовДокумента \
  --report ./build/reports/yaxunit.xml

# Только тесты с заданными тегами
vrunner test yaxunit \
  --ibconnection /F./ib \
  --ext МоиТесты \
  --tags "smoke,critical"

# Использовать готовый конфигурационный файл
vrunner test yaxunit \
  --ibconnection /F./ib \
  --yaxunit-config ./yaxunit.json

Формат yaxunit.json

Готовый файл запуска (--yaxunit-config) описывает фильтрацию тестов, формат и путь отчёта, файл кода возврата и поведение после прогона. Подробнее о формате см. в документации YAxUnit.

vanessa

Запускает функциональные тесты по сценариям в формате Gherkin через обработку bddRunner.epf (Vanessa-ADD BDD).

bash
vrunner test vanessa [опции]

Опции

ОпцияПеременная окруженияОписание
--feature-pathVRUNNER_FEATUREPATHПуть к каталогу с фичами или к конкретному файлу .feature. Передаётся в Vanessa-ADD через переменную окружения VANESSA_FEATUREPATH и переопределяет КаталогФич из настроек. Несовместим с --ordinaryapp 1
--bddrunner-pathVRUNNER_PATHVANESSAПуть к bddRunner.epf (по умолчанию из vanessa-add)
--vanessasettingsVRUNNER_VANESSASETTINGSПуть к файлу настроек фреймворка тестирования
--workspaceVRUNNER_WORKSPACEПуть к папке проекта
--tags-ignore-Теги для игнорирования файлов фич
--tags-filter-Теги для фильтрации файлов фич
--additional-keys-Дополнительные параметры, передаваемые в /C
--no-wait-Не ожидать завершения
--ibconnectionVRUNNER_IBCONNECTIONСтрока подключения к ИБ (/F<путь> - файловая, /S<сервер>\<база> - серверная)
--db-userVRUNNER_DBUSERПользователь ИБ
--db-pwdVRUNNER_DBPWDПароль пользователя ИБ
--ibcmd-Использовать ibcmd вместо Конфигуратора
--v8versionVRUNNER_V8VERSIONВерсия платформы 1С
--uccodeVRUNNER_UCCODEКод разрешения блокировки
--languageVRUNNER_LANGUAGEЯзык платформы
--localeVRUNNER_LOCALEЯзык сеанса (локаль)
--nocacheuseVRUNNER_NOCACHEUSEНе использовать кеш платформы
--ordinaryappVRUNNER_ORDINARYAPPРежим запуска: 1 (толстый), 0 (тонкий), -1 (авто)
--additionalVRUNNER_ADDITIONALДополнительные параметры запуска платформы
--settingsVRUNNER_SETTINGSПуть к файлу настроек (JSON)

Подробнее о форматах строки подключения и ibcmd: Подключение к базе данных →

Примеры

bash
# Запустить все фичи
vrunner test vanessa \
  --ibconnection /F./ib \
  --feature-path ./features \
  --vanessasettings ./vb-params.json

# Запустить с фильтром по тегам
vrunner test vanessa \
  --ibconnection /F./ib \
  --feature-path ./features \
  --tags-filter "@smoke" \
  --tags-ignore "@wip"

# Запустить конкретную фичу
vrunner test vanessa \
  --ibconnection /F./ib \
  --feature-path ./features/Catalog.feature

vanessasettings

Файл настроек vb-params.json содержит конфигурацию Vanessa-ADD: пути к отчётам, настройки скриншотов, тайм-ауты и другие параметры. Документацию по формату файла см. в репозитории vanessa-add.

Покрытие тестами

Все три подкоманды (xunit, yaxunit, vanessa) умеют собирать покрытие кода тестами в XML-отчёт (genericCoverage, Cobertura, Clover). Сбор включается одной опцией — --coverage-report. Как это устроено, форматы отчёта, работа с сервером отладки и клиент-серверными базами — в отдельной статье: Сбор покрытия тестами →.

bash
vrunner test yaxunit --ibconnection /F./ib --coverage-report ./build/coverage.xml

Опции покрытия

ОпцияПеременная окруженияОписание
--coverage-reportVRUNNER_COVERAGE_REPORTПуть к файлу отчёта. Если задан — покрытие собирается
--coverage-formatVRUNNER_COVERAGE_FORMATФормат отчёта: generic (по умолчанию), cobertura, clover
--coverage-srcVRUNNER_COVERAGE_SRCКаталог исходников конфигурации (по умолчанию ./src)
--coverage-ext-Каталог исходников расширения (можно указать несколько раз)
--coverage-serverVRUNNER_COVERAGE_SERVERСервер отладки [хост:]порт (пусто/порт — локально; хост:порт — существующий)
--coverage-dbgsVRUNNER_COVERAGE_DBGSПуть к серверу отладки dbgs (по умолчанию — по версии платформы)
--coverage-aliasVRUNNER_COVERAGE_ALIASИмя (алиас) ИБ для сессии отладки
--coverage-debug-pwdVRUNNER_COVERAGE_DEBUG_PWDПароль сервера отладки
--coverage-skip-linesVRUNNER_COVERAGE_SKIP_LINESНе считать процент покрытия (только исполненные строки)

Подробности, ограничения и примеры: Сбор покрытия тестами →.