Библиотека проекта oscript.io
для автоматизации различных операции для работы с cf/cfe/epf
файлами и простой запуск сценариев поведения (BDD) и тестов из фреймворка Vanessa-ADD.
Предназначена для организации разработки 1С в режиме, когда работа в git идет напрямую с исходниками или работаем через хранилище 1С.
Позволяет обеспечить единообразный запуск команд "локально" и на серверах сборки CI-CD
используйте пакетный менеджер opm
из стандартной поставки дистрибутива oscript.io
opm install vanessa-runner
при установке будет создан исполняемый файл runner
в каталоге bin
интерпретатора oscript
.
После чего доступно выполнение команд через командную строку runner <имя команды>
Ключ help
покажет справку по параметрам.
runner help
или внутри батника (ВАЖНО) через call
call runner help
Основной принцип - запустили bat файл с настроенными командами и получили результат.
Для сборки обработок необходимо иметь установленный oscript в переменной PATH и платформу выше 8.3.8
В командной строке нужно перейти в каталог с проектом и выполнить tools\compile_epf.bat
, по окончанию в каталоге build\epf должны появиться обработки.
Вся разработка в конфигураторе делается в каталоге build, по окончанию доработок запускаем tools\decompile_epf.bat
Обязательно наличие установленного v8unpack версии не ниже 3.0.38 в переменной PATH. Установку можно взять https://github.com/dmpas/v8unpack#build
1. Создание ИБ из последней конфигурации хранилища 1С, обновление в режиме Предприятия и первоначальное заполнение ИБ
1с-init.cmd
:
@rem Полная инициализация из репозитария, обновление в режиме Предприятия и начальное заполнение ИБ ./build/ibservice
@rem Пример запуска 1с-init.cmd storage-user storage-password
@chcp 65001
@set RUNNER_IBNAME=/F./build/ibservice
@call runner init-dev --storage --storage-name http:/repo-1c --storage-user %1 --storage-pwd %2
@call runner run --command "ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы;" --execute $runnerRoot\epf\ЗакрытьПредприятие.epf
@call runner vanessa --settings tools/vrunner.first.json
@rem Если убрать комментарий из последней строки, тогда можно выполнять полный прогон bdd-фич
@rem @call runner vanessa --settings tools/vrunner.json
-
запуск
runner vanessa --settings tools/vrunner.json
- или внутри батника
call runner vanessa --settings tools/vrunner.json
- или внутри батника
-
vrunner.json:
{
"default": {
"--ibconnection": "/F./build/ib",
"--db-user": "Администратор",
"--db-pwd": "",
"--ordinaryapp": "0"
},
"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"
}
В случае необходимости переопределения параметров запуска используется схема приоритетов.
Приоритет в порядке возрастания (от минимального до максимального приоритета)
env.json (в корне проекта)
--settings ../env.json (указание файла настроек вручную)
RUNNER_* (из переменных окружения)
--* (ключи командной строки)
Описание:
- На первоначальном этапе читаются настройки из файла настроек, указанного в ключе команды
--settings tools/vrunner.json
- Потом, если настройка есть в переменной окружения, тогда берем из неe.
- Если же настройка есть, как в файле json, так и в переменной окружения и непосредственно в командной строке, то берем настройку из командной строки.
Например:
-
Допустим, в файле vrunner.json указана настройка
"--db-user":"Администратор"
а нам для определенного случая надо переопределить имя пользователя, тогда можно установить переменную:
set RUNNER_DBUSER=Иванов
и в данный параметр будет передано значениеИванов
-
Очистка значения после установки
set RUNNER_DBUSER=Иванов set RUNNER_DBUSER=
в данном случае установлено полностью пустое значение и имя пользователя будет взято из tools/vrunner.json, если оно там есть.
-
Установка пустого значения:
set RUNNER_DBUSER="" set RUNNER_DBUSER=''
Если необходимо установить в поле пустое значение, тогда указываем кавычки и в параметр
--db-user
будет установлена пустая строка. -
Переопределение через параметры командной строки.
Любое указание параметра в командной строке имеет наивысший приоритет.
При указании значений параметров внутри строки с параметром можно использовать шаблонные переменные. Список таких переменных:
- workspaceRoot - означает каталог текущего проекта
- runnerRoot - означает каталог установки vanessa-runner
- addRoot - означает каталог установки библиотеки ADD
Управление выводом логов выполняется с помощью типовой для oscript-library настройки логирования через пакет logos.
Основной лог vanessa-runner имеет название oscript.app.vanessa-runner
.
Включение всех отладочных логов:
rem только для logos версии >=0.6
set LOGOS_CONFIG=logger.rootLogger=DEBUG
call vrunner <параметры запуска>
Если пишет, что неправильные параметры командной строки:
set LOGOS_CONFIG=logger.oscript.lib.cmdline=DEBUG
call vrunner <параметры запуска>
Включит отладочный лог только для библиотеки cmdline, которая анализирует параметры командной строки.
В папке epf есть несколько обработок, позволяющих упростить развертывание/тестирование для конфигураций, основанных на БСП.
-
Основной пример (см. ниже пример вызова) - это передача через параметры /C команды "ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы" и одновременная передача через /Execute"ЗакрытьПредприятие.epf".
- При запуске с такими ключами подключается обработчик ожидания, который проверяет наличие формы с заголовком обновления и при окончании обновления завершает 1С:Предприятие. Данное действие необходимо для полного обновления информационной базы 1С:Предприятия, пока действует блокировка на фоновые задачи и запуск пользователей.
-
ЗагрузитьРасширение позволяет подключать расширение в режиме предприятия и получать результат ошибки. Предназначено для подключения в конфигурациях, основанных на БСП. В параметрах /C передается путь к расширению и путь к файлу лога подключения.
-
ЗагрузитьВнешниеОбработки позволяет загрузить все внешние обработки и подключить в справочник "Дополнительные отчеты и обработки", т.к. их очень много то первым параметром идет каталог, вторым параметром путь к файлу лога. Все обработки обновляются согласно версиям.