- Notifications
You must be signed in to change notification settings - Fork112
утилита автоматизации базовых операций разработчика 1С
License
vanessa-opensource/vanessa-runner
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
- Автоматизация повседневных операций 1С разработчика
- Автоматизация повседневных операций 1С разработчика
- Описание
- Установка
- Использование
- Создание проекта
- Сборка обработок и конфигураций
- Примеры настройки и вызова
- 1. Создание ИБ из последней конфигурации хранилища 1С, обновление в режиме Предприятия и первоначальное заполнение ИБ
- 2. Вызов модульных тестов через Vanessa-ADD (TDD)
- 3. Вызов проверки поведения через Vanessa-ADD (BDD)
- 4. Переопределение аргументов запуска
- Переопределение переменной окружения
- Шаблонные переменные
- Вывод отладочной информации
- Дополнительные обработки для режима 1С:Предприятие
- Дополнительная настройка различных команд
Консольное приложение проектаoscript.io
для автоматизации различных операции для работы сcf/cfe/epf
файлами, а также автоматизация запуска сценариев поведения (BDD) и тестов из фреймворкаVanessa-ADD.
Предназначено для организации разработки 1С в режиме, когда работа в git идет напрямую с исходниками или работаем через хранилище 1С.
Позволяет обеспечить единообразный запуск команд "локально" и на серверах сборкиCI-CD
используйте пакетный менеджерopm
из стандартной поставки дистрибутиваoscript.io
opm install vanessa-runner
при установке будет создан исполняемый файлvrunner
в каталогеbin
интерпретатораoscript
.
После чего доступно выполнение команд через командную строкуvrunner <имя команды>
Ключhelp
покажет справку по параметрам.
vrunner help
или внутри батника (ВАЖНО) черезcall
call vrunner help
Основной принцип - запустили bat файл с настроенными командами и получили результат.
С помощью командыinit-project
можно создать структуру проекта следующими командами:
vrunner init-project
Команда клонирует шаблонvanessa-bootstrap и предложит для установки три библиотеки для проекта:
vrunner init-project --template https://github.com/user/myrepo.git
--template
cсылка на шаблон, из которого будет клонироваться проект.
При использовании ключа--template
клонируется указанный шаблон, считываются пакеты из env файла шаблона, если пакеты не заданы предлагаются библиотеки по умолчанию.
vrunner init-project --settings my-path/env.json
--settings
путь к файлу env.Пример файла настроек.
Добавлены следующие настройки:
{"init-project": {"ШаблонПроекта": {"Использовать":true,"Репозиторий":"https://github.com/vanessa-opensource/vanessa-bootstrap.git" },"Пакеты": [ {"Имя":"gitsync","Использовать":true,"Установка": ["opm install gitsync" ] }, {"Имя":"gitrules","Использовать":true,"Установка": ["opm install gitrules","gitrules install" ] }, {"Имя":"precommit1c","Использовать":false,"Установка": ["opm install precommit1c","precommit1c --install" ] } ] }}
Для установки пакетовgitrules
иprecommit1c
последовательно выполняются указанные команды.
При использовании ключа--settings
считываются пакеты из указанного файла env, если пакеты не заданы предлагаются библиотеки по умолчанию.
Вы можете объединить несколько команд в файлcmd / bat
и указать его как пакет:
"Пакеты": [ {"Имя":"compile","Использовать":true,"Установка": ["compileEpf.cmd" ] } ]
В данном примере будут собраны обработки при создании проекта. Содержимое файлаcompileEpf.cmd
:
call vrunner compileepf src/tools tools/epf/utilscall vrunner compileepf src/tests tests/smokecall vrunner compileepf src/epf tools/epf
Для сборки обработок необходимо иметь установленный oscript в переменной PATH и платформу выше 8.3.8
В командной строке нужно перейти в каталог с проектом и выполнитьtools\compile_epf.bat
, по окончанию в каталоге build\epf должны появиться обработки.Вся разработка в конфигураторе делается в каталоге build, по окончанию доработок запускаемtools\decompile_epf.bat
Обязательно наличие установленного v8unpack версии не ниже 3.0.38 в переменной PATH.
- Установку можно взять в релизах утилиты -https://github.com/e8tools/v8unpack/releases
- Подробнее про утилиту v8unpack -https://github.com/e8tools/v8unpack
1. Создание ИБ из последней конфигурации хранилища 1С, обновление в режиме Предприятия и первоначальное заполнение ИБ
1с-init.cmd
:
@rem Полная инициализация из репозитария, обновление в режиме Предприятия и начальное заполнение ИБ ./build/ibservice@rem Пример запуска 1с-init.cmd storage-user storage-password@chcp65001@setRUNNER_IBNAME=/F./build/ibservice@call vrunner init-dev --storage --storage-name http:/repo-1c --storage-user%1 --storage-pwd%2@call vrunner run --command"ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы;" --execute $runnerRoot\epf\ЗакрытьПредприятие.epf@call vrunner vanessa --settings tools/vrunner.first.json@rem Если убрать комментарий из последней строки, тогда можно выполнять полный прогон bdd-фич@rem @call vrunner vanessa --settings tools/vrunner.json
запуск
vrunner xunit tests --settings tools/vrunner.json
- или внутри батника
call vrunner xunit --settings tools/vrunner.json
- или внутри батника
пример vrunner.json:
{"default": {"--ibconnection":"/F./build/ib","--db-user":"Администратор","--db-pwd":"","--ordinaryapp":"-1" },"xunit": {"--xddConfig":"tools/JSON/xUnitParams.json","testsPath":"tests/smoke","--reportsxunit":"ГенераторОтчетаJUnitXML{build/smoke/junit/xddreport.xml};ГенераторОтчетаAllureXML{build/smoke/allure/allure-testsuite.xml}","--xddExitCodePath":"build/xddExitCodePath.txt","--testclient":"Автотест:123:48223","--testclient-additional" :"/iTaxi" }}
Формат файла настройки (в примере xUnitParams.json) для тестов смотрите всправке Vanessа-ADD
Подсказка из командной строки
vrunner xunit <testsPath> [прочие-ключи] ... <testsPath> - [env RUNNER_TESTSPATH] Путь к каталогу или к файлу с тестами - tests\ТестыПродаж или tests\ТестыПродаж\ТестОптовойПродажи.epfили к встроенным тестам (общие модули из тестовых расширений или подсистемы\обработки из конфигурации), если явно указан ключ --config-tests. Если тесты в виде общих клиентских или серверных модулей в расширениях\конфигурации, то указать просто имя расширения или имя конфигурации. например, Тесты_Продажи или ADD_TDD.Возможные варианты указания подсистемы или конкретного теста: Метаданные.Подсистемы.Тестовая или Метаданные.Подсистемы.Тестовая.Подсистемы.Подсистема1 или Метаданные.Обработки.Тест Можно использовать переменную $addRoot, означающую каталог установки библиотеки Vanessa-ADD. Например, $addRoot/tests/smoke для запуска дымовых тестов. --workspace - [env RUNNER_WORKSPACE] путь к папке, относительно которой будут определяться макросы $workspace. по умолчанию текущий. --config-tests - [env RUNNER_CONFIG_TESTS] загружать тесты, встроенные в конфигурации в указанную подсистему в виде обработок --pathxunit - [env RUNNER_PATHXUNIT] путь к внешней обработке, по умолчанию ищу в пакете vanessa-add --reportsxunit - --reportsxunit параметры формирования отчетов в формате вида: ФорматВыводаОтчета{Путь к файлу отчета};ФорматВыводаОтчета{Путь к файлу отчета}... Пример: ГенераторОтчетаJUnitXML{build/junit.xml};ГенераторОтчетаAllureXML{build/allure.xml} Пример (англоязычный вариант): GenerateReportJUnitXML{build/junit.xml};GenerateReportAllureXML{build/allure.xml} --xddExitCodePath - путь к текстовому файлу, обозначающему статус выполнению. Внутри файла строка-значение 0 (тесты пройдены), 1 (тесты не пройдены) --xddConfig - Путь к конфигурационному файлу xUnitFor1c --testclient - Параметры подключения к тест-клиенту вида --testclient ИмяПользователя:Пароль:Порт Пример 1: --testclient Администратор:пароль:1538 Пример 2: --testclient ::1538 (клиент тестирования будет запущен с реквизитами менеджера тестирования) --testclient-additional - Дополнительные параметры, передаваемые приложению 1С при запуске тест-клиента --reportxunit - путь к каталогу с отчетом jUnit (устарел) --additional - Дополнительные параметры для запуска предприятия. --no-wait - Не ожидать завершения запущенной команды/действия --xdddebug - Выводить отладочные сообщения при прогоне тестов --no-shutdown - Не завершать работу 1С:Предприятие после выполнения тестов
запуск
vrunner vanessa --settings tools/vrunner.json
- или внутри батника
call vrunner vanessa --settings tools/vrunner.json
- или внутри батника
пример vrunner.json:
{"default": {"--ibconnection":"/F./build/ib","--db-user":"Администратор","--db-pwd":"","--ordinaryapp":"-1" },"vanessa": {"--vanessasettings":"./tools/VBParams.json","--workspace":".","--additional":"/DisplayAllFunctions /L ru" }}
- пример VBParams.json
{"ВыполнитьСценарии":true,"ЗавершитьРаботуСистемы":true,"ЗакрытьTestClientПослеЗапускаСценариев":true,"КаталогФич":"$workspaceRoot/features/01-СистемаУправления","СписокТеговИсключение": ["IgnoreOnCIMainBuild","FirstStart","Draft" ],"КаталогиБиблиотек": ["./features/Libraries" ],"ДелатьОтчетВФорматеАллюр":true,"КаталогOutputAllureБазовый":"$workspaceRoot/build/out/allure","ДелатьОтчетВФорматеCucumberJson":true,"КаталогOutputCucumberJson":"$workspaceRoot/build/out/cucumber","ВыгружатьСтатусВыполненияСценариевВФайл":true,"ПутьКФайлуДляВыгрузкиСтатусаВыполненияСценариев":"$workspaceRoot/build/out/vbStatus.log","ДелатьЛогВыполненияСценариевВТекстовыйФайл":true,"ИмяФайлаЛогВыполненияСценариев":"$workspaceRoot/build/out/vbOnline.log"}
Формат файлов настройки и других параметров запуска BDD смотрите всправке Vanessа-ADD
Подсказка из командной строки
vrunner vanessa --path <bddPath> [прочие-ключи] ... --path - Путь для запуска тестов В параметре <bddPath> можно указывать как каталог с фичами, так и конкретную фичу --vanessasettings - [env RUNNER_VANESSASETTINGS] путь к файлу настроек фреймворка тестирования --pathvanessa - [env RUNNER_PATHVANESSA] путь к внешней обработке, по умолчанию <OneScript>/lib/add/bddRunner.epf или переменная окружения RUNNER_PATHVANESSA --workspace - [env RUNNER_WORKSPACE] путь к папке, относительно которой будут определятся макросы $workspace. по умолчанию текущий. --tags-ignore - Теги игнорирования фича-файлов --tags-filter - Теги отбор фича-файлов --additional - Дополнительные параметры для запуска предприятия. --additional-keys - Дополнительные параметры, передаваемые в параметр /С. --no-wait - Не ожидать завершения запущенной команды/действия
В случае необходимости переопределения параметров запуска используется схема приоритетов.
Приоритет в порядке возрастания (от минимального до максимального приоритета)
env.json (в корне проекта)
--settings ../env.json (указание файла настроек вручную)
RUNNER_* (из переменных окружения)
--* (ключи командной строки)
Описание:
- На первоначальном этапе читаются настройки из файла настроек, указанного в ключе команды
--settings tools/vrunner.json
- Потом, если настройка есть в переменной окружения, тогда берем из неe.
- Если же настройка есть, как в файле json, так и в переменной окружения и непосредственно в командной строке, то берем настройку из командной строки.
Например:
Допустим, в файле vrunner.json указана настройка
"--db-user":"Администратор"
а нам для определенного случая надо переопределить имя пользователя,тогда можно установить переменную:
set RUNNER_DBUSER=Иванов
и в данный параметр будет передано значениеИванов
Очистка значения после установки
setRUNNER_DBUSER=ИвановsetRUNNER_DBUSER=
в данном случае установлено полностью пустое значение и имя пользователя будет взято из tools/vrunner.json, если оно там есть.
Установка пустого значения:
setRUNNER_DBUSER=""setRUNNER_DBUSER=''
Если необходимо установить в поле пустое значение, тогда указываем кавычки и в параметр
--db-user
будет установлена пустая строка.Переопределение через параметры командной строки.
Любое указание параметра в командной строке имеет наивысший приоритет.
При указании значений параметров внутри строки с параметром можно использовать шаблонные переменные.Список таких переменных:
- workspaceRoot - означает каталог текущего проекта
- runnerRoot - означает каталог установки Vanessa-Runner
- addRoot - означает каталог установки библиотеки Vanessa-ADD
Управление выводом логов выполняется с помощью типовой для oscript-library настройки логирования через пакет logos.
Основной лог vanessa-runner имеет названиеoscript.app.vanessa-runner
.
Включение всех отладочных логов:
rem только для logos версии>=0.6setLOGOS_CONFIG=logger.rootLogger=DEBUGcall vrunner<параметры запуска>
Если выводится сообщение про неправильные параметры командной строки:
setLOGOS_CONFIG=logger.oscript.lib.cmdline=DEBUGcall vrunner<параметры запуска>
Включит отладочный лог только для библиотеки cmdline, которая анализирует параметры командной строки.
В папке epf есть несколько обработок, позволяющих упростить развертывание/тестирование для конфигураций, основанных на БСП.
Основной пример (см. ниже пример вызова) - это передача через параметры
/C
команды"ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы"
и одновременная передача через/Execute "ЗакрытьПредприятие.epf"
.При запуске с такими ключами подключается обработчик ожидания, который проверяет наличие формы с заголовком обновления и при окончании обновления завершает 1С:Предприятие. Данное действие необходимо для полного обновления информационной базы 1С:Предприятия, пока действует блокировка на фоновые задачи и запуск пользователей.
также выполняется отключение запроса при завершении работы программы для БСП-конфигураций
код запуска
@call vrunner run --command"ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы;" --execute $runnerRoot\epf\ЗакрытьПредприятие.epf
ЗагрузитьРасширение позволяет подключать расширение в режиме предприятия и получать результат ошибки. Предназначено для подключения в конфигурациях, основанных на БСП. В параметрах /C передается путь к расширению и путь к файлу лога подключения.
ЗагрузитьВнешниеОбработки позволяет загрузить все внешние обработки и подключить в справочник "Дополнительные отчеты и обработки", т.к. их очень много то первым параметром идет каталог, вторым параметром путь к файлу лога. Все обработки обновляются согласно версиям.
СозданиеПользователей позволяет создать первого пользователя-администратора, если в ИБ еще не существует пользователей. Администратор назначается роль
ПолныеПрава
, если она существует в ИБ.также выполняется отключение запроса при завершении работы программы для БСП-конфигураций
код запуска для создания пользователя с именем
Администратор
@call vrunner run --command"СоздатьАдминистратора;Имя=Администратор;ЗавершитьРаботуСистемы" --execute $runnerRoot\epf\СоздатьПользователей.epf
Для управления режима синтаксической проверки рекомендуется использовать json-файл настройки.Для его использования нужно
- установить путь к нему в параметре
VRUNNER_CONF
- внутри json-файла нужно добавить секцию
syntax-check
- список всех используемых параметров можно уточнить, выполнив команду
vrunner help syntax-check
- ссылка на подготовленный файлexamples\example.env.json
- также можно передавать параметры синтакс-проверки через командную строку
- в этом случае режимы проверки должны быть указаныпоследним параметров ком.строки последовательно, через пробел
- например,
vrunner syntax-check --groupbymetadata --mode -ExtendedModulesCheck -Server -ThinClient -ExternalConnection
- например,
- в этом случае режимы проверки должны быть указаныпоследним параметров ком.строки последовательно, через пробел
Пример настройки в файле
{"syntax-check": {"--groupbymetadata":true,"--exception-file":"","--mode": ["-ExtendedModulesCheck","-ThinClient","-WebClient","-Server","-ExternalConnection","-ThickClientOrdinaryApplication"// "-Extension" : "ИмяРасширения",// "-AllExtensions" : true ] }}
Возможно использование специальных режимов реструктуризации-v1
и-v2
.
- В режиме командной строки
- указываются ключи
--v1
и--v2
. Важно: указать двойной знак--
, а не одиночный! - 3 команды поддерживают эти ключи
init-dev
update-dev
updatedb
- например,
vrunner updatedb --ibconnection /F./build/ibservice --uccode test --v2
- указываются ключи
- в json-файле настройки
- например,
{"updatedb": {"--v2":true,"--uccode":"test" },"init-dev": {"--v2":true } },"update-dev": {"--v2":true }}
About
утилита автоматизации базовых операций разработчика 1С