Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vanessa-opensource/vanessa-runner
утилита автоматизации базовых операций разработчика 1С
https://github.com/vanessa-opensource/vanessa-runner
1c 1c-devops devops-1c hacktoberfest oscript-lib oscript-package vanessa vanessa-runner
Last synced: 29 days ago
JSON representation
утилита автоматизации базовых операций разработчика 1С
- Host: GitHub
- URL: https://github.com/vanessa-opensource/vanessa-runner
- Owner: vanessa-opensource
- License: mpl-2.0
- Created: 2016-04-18T06:35:56.000Z (over 8 years ago)
- Default Branch: develop
- Last Pushed: 2024-07-31T05:59:12.000Z (5 months ago)
- Last Synced: 2024-08-10T14:02:31.359Z (4 months ago)
- Topics: 1c, 1c-devops, devops-1c, hacktoberfest, oscript-lib, oscript-package, vanessa, vanessa-runner
- Language: 1C Enterprise
- Homepage:
- Size: 1.94 MB
- Stars: 199
- Watchers: 33
- Forks: 106
- Open Issues: 117
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-1c - Local Compile Utils - скрипты для локальной сборки "за один шаг" (Библиотеки и утилиты для работы)
README
# Автоматизация повседневных операций 1С разработчика[![Chat on Telegram vanessa_opensource_chat](https://img.shields.io/badge/chat-Telegram-brightgreen.svg)](https://t.me/vanessa_opensource_chat)
[![GitHub release](https://img.shields.io/github/release/vanessa-opensource/vanessa-runner.svg)](https://github.com/vanessa-opensource/vanessa-runner/releases)
[![Тестирование](https://github.com/vanessa-opensource/vanessa-runner/actions/workflows/testing.yml/badge.svg)](https://github.com/vanessa-opensource/vanessa-runner/actions/workflows/testing.yml)
[![Статус Порога Качества](https://sonar.openbsl.ru/api/project_badges/measure?project=vanessa-runner&metric=alert_status)](https://sonar.openbsl.ru/dashboard?id=vanessa-runner)
[![Покрытие](https://sonar.openbsl.ru/api/project_badges/measure?project=vanessa-runner&metric=coverage)](https://sonar.openbsl.ru/dashboard?id=vanessa-runner)
[![Технический долг](https://sonar.openbsl.ru/api/project_badges/measure?project=vanessa-runner&metric=sqale_index)](https://sonar.openbsl.ru/dashboard?id=vanessa-runner)
[![Строки кода](https://sonar.openbsl.ru/api/project_badges/measure?project=vanessa-runner&metric=ncloc)](https://sonar.openbsl.ru/dashboard?id=vanessa-runner)- [Автоматизация повседневных операций 1С разработчика](#автоматизация-повседневных-операций-1с-разработчика)
- [Описание](#описание)
- [Автоматизация повседневных операций 1С разработчика](#автоматизация-повседневных-операций-1с-разработчика-1)
- [Описание](#описание-1)
- [Установка](#установка)
- [Использование](#использование)
- [Создание проекта](#создание-проекта)
- [Примеры создания проекта](#примеры-создания-проекта)
- [1. Создание проекта по указанному шаблону](#1-создание-проекта-по-указанному-шаблону)
- [2. Создание проекта по файлу настроек](#2-создание-проекта-по-файлу-настроек)
- [3. Сборка обработок при создании проекта](#3-сборка-обработок-при-создании-проекта)
- [Сборка обработок и конфигураций](#сборка-обработок-и-конфигураций)
- [Примеры настройки и вызова](#примеры-настройки-и-вызова)
- [1. Создание ИБ из последней конфигурации хранилища 1С, обновление в режиме Предприятия и первоначальное заполнение ИБ](#1-создание-иб-из-последней-конфигурации-хранилища-1с-обновление-в-режиме-предприятия-и-первоначальное-заполнение-иб)
- [2. Вызов модульных тестов через Vanessa-ADD (TDD)](#2-вызов-модульных-тестов-через-vanessa-add-tdd)
- [3. Вызов проверки поведения через Vanessa-ADD (BDD)](#3-вызов-проверки-поведения-через-vanessa-add-bdd)
- [4. Переопределение аргументов запуска](#4-переопределение-аргументов-запуска)
- [Переопределение переменной окружения](#переопределение-переменной-окружения)
- [Установка значения](#установка-значения)
- [Шаблонные переменные](#шаблонные-переменные)
- [Вывод отладочной информации](#вывод-отладочной-информации)
- [Примеры](#примеры)
- [Дополнительные обработки для режима 1С:Предприятие](#дополнительные-обработки-для-режима-1спредприятие)
- [Дополнительная настройка различных команд](#дополнительная-настройка-различных-команд)
- [Настройка синтаксической проверки](#настройка-синтаксической-проверки)
- [Настройка режимов реструктуризации при обновлении конфигурации БД](#настройка-режимов-реструктуризации-при-обновлении-конфигурации-бд)
## Описание
Автоматизация повседневных операций 1С разработчика
==Описание
===Консольное приложение проекта `oscript.io` для автоматизации различных операции для работы с `cf/cfe/epf` файлами, а также автоматизация запуска сценариев поведения (BDD) и тестов из фреймворка [Vanessa-ADD](https://github.com/vanessa-opensource/add).
Предназначено для организации разработки 1С в режиме, когда работа в git идет напрямую с исходниками или работаем через хранилище 1С.
Позволяет обеспечить единообразный запуск команд "локально" и на серверах сборки `CI-CD`
используйте пакетный менеджер `opm` из стандартной поставки дистрибутива `oscript.io`
```cmd
opm install vanessa-runner
```при установке будет создан исполняемый файл `vrunner` в каталоге `bin` интерпретатора `oscript`.
После чего доступно выполнение команд через командную строку `vrunner <имя команды>`
## Использование
Ключ `help` покажет справку по параметрам.
```cmd
vrunner help
```или внутри батника (**ВАЖНО**) через `call`
```cmd
call vrunner help
```Основной принцип - запустили bat файл с настроенными командами и получили результат.
С помощью команды `init-project` можно создать структуру проекта следующими командами:
```cmd
vrunner init-project
```Команда клонирует шаблон vanessa-bootstrap и предложит для установки три библиотеки для проекта:
- gitsync
- gitrules
- precommit1c#### Примеры создания проекта
#### 1. Создание проекта по указанному шаблону
```cmd
vrunner init-project --template https://github.com/user/myrepo.git
```
`--template` cсылка на шаблон, из которого будет клонироваться проект.При использовании ключа `--template` клонируется указанный шаблон, считываются пакеты из env файла шаблона, если пакеты не заданы предлагаются библиотеки по умолчанию.
#### 2. Создание проекта по файлу настроек
```cmd
vrunner init-project --settings my-path/env.json
````--settings` путь к файлу env. Пример файла настроек.
Добавлены следующие настройки:
```json
{
"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, если пакеты не заданы предлагаются библиотеки по умолчанию.
#### 3. Сборка обработок при создании проекта
Вы можете объединить несколько команд в файл `cmd / bat` и указать его как пакет:
```json
"Пакеты": [
{
"Имя": "compile",
"Использовать": true,
"Установка": [
"compileEpf.cmd"
]
}
]
```
В данном примере будут собраны обработки при создании проекта. Содержимое файла `compileEpf.cmd`:
```cmd
call vrunner compileepf src/tools tools/epf/utils
call vrunner compileepf src/tests tests/smoke
call 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` :
```bat
@rem Полная инициализация из репозитария, обновление в режиме Предприятия и начальное заполнение ИБ ./build/ibservice@rem Пример запуска 1с-init.cmd storage-user storage-password
@chcp 65001
@set RUNNER_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
```#### 2. Вызов модульных тестов через Vanessa-ADD (TDD)
+ запуск `vrunner xunit tests --settings tools/vrunner.json`
+ или внутри батника
+ `call vrunner xunit --settings tools/vrunner.json`+ пример vrunner.json:
```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](https://github.com/vanessa-opensource/add/tree/develop/tests/smoke#%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%B4%D1%8B%D0%BC%D0%BE%D0%B2%D1%8B%D1%85-%D1%82%D0%B5%D1%81%D1%82%D0%BE%D0%B2-%D0%BF%D0%BE%D0%B4-%D0%BA%D0%BE%D0%BD%D0%BA%D1%80%D0%B5%D1%82%D0%BD%D1%83%D1%8E-%D0%BA%D0%BE%D0%BD%D1%84%D0%B8%D0%B3%D1%83%D1%80%D0%B0%D1%86%D0%B8%D1%8E)
Подсказка из командной строки
```
vrunner xunit [прочие-ключи] ...
- [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/a
llure.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С:Предприятие после выполнения тестов
```
#### 3. Вызов проверки поведения через Vanessa-ADD (BDD)+ запуск `vrunner vanessa --settings tools/vrunner.json`
+ или внутри батника
+ `call vrunner vanessa --settings tools/vrunner.json`+ пример vrunner.json:
```json
{
"default": {
"--ibconnection": "/F./build/ib",
"--db-user": "Администратор",
"--db-pwd": "",
"--ordinaryapp": "-1"
},
"vanessa": {
"--vanessasettings": "./tools/VBParams.json",
"--workspace": ".",
"--additional": "/DisplayAllFunctions /L ru"
}
}
```+ пример VBParams.json
```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](https://github.com/vanessa-opensource/add/blob/develop/doc/%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B8-%D0%BF%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D1%8F-%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA%D0%B0.md)Подсказка из командной строки
```
vrunner vanessa --path [прочие-ключи] ...
--path - Путь для запуска тестов
В параметре можно указывать как каталог с фичами, так и конкретную фичу
--vanessasettings - [env RUNNER_VANESSASETTINGS] путь к файлу настроек фреймворка тестирования
--pathvanessa - [env RUNNER_PATHVANESSA] путь к внешней обработке, по умолчанию /lib/add/bddRunner.epf
или переменная окружения RUNNER_PATHVANESSA
--workspace - [env RUNNER_WORKSPACE] путь к папке, относительно которой будут определятся макросы $workspace. по умолчанию текущий.
--tags-ignore - Теги игнорирования фича-файлов
--tags-filter - Теги отбор фича-файлов
--additional - Дополнительные параметры для запуска предприятия.
--additional-keys - Дополнительные параметры, передаваемые в параметр /С.
--no-wait - Не ожидать завершения запущенной команды/действия
```
#### 4. Переопределение аргументов запускаВ случае необходимости переопределения параметров запуска используется схема приоритетов.
Приоритет в порядке возрастания (от минимального до максимального приоритета)
+ `env.json (в корне проекта)`
+ `--settings ../env.json (указание файла настроек вручную)`
+ `RUNNER_* (из переменных окружения)`
+ `--* (ключи командной строки)`Описание:
+ На первоначальном этапе читаются настройки из файла настроек, указанного в ключе команды ```--settings tools/vrunner.json```
+ Потом, если настройка есть в переменной окружения, тогда берем из неe.
+ Если же настройка есть, как в файле json, так и в переменной окружения и непосредственно в командной строке, то берем настройку из командной строки.Например:
#### Переопределение переменной окружения1. Допустим, в файле vrunner.json указана настройка
```json
"--db-user":"Администратор"
```
а нам для определенного случая надо переопределить имя пользователя,
тогда можно установить переменную: ```set RUNNER_DBUSER=Иванов``` и в данный параметр будет передано значение `Иванов`2. Очистка значения после установки
```cmd
set RUNNER_DBUSER=Иванов
set RUNNER_DBUSER=
```
в данном случае установлено полностью пустое значение и имя пользователя будет взято из tools/vrunner.json, если оно там есть.3. Установка пустого значения:
```cmd
set RUNNER_DBUSER=""
set RUNNER_DBUSER=''
```Если необходимо установить в поле пустое значение, тогда указываем кавычки и в параметр `--db-user` будет установлена пустая строка.
4. Переопределение через параметры командной строки.
Любое указание параметра в командной строке имеет наивысший приоритет.
При указании значений параметров внутри строки с параметром можно использовать шаблонные переменные.
Список таких переменных:+ workspaceRoot - означает каталог текущего проекта
+ runnerRoot - означает каталог установки Vanessa-Runner
+ addRoot - означает каталог установки библиотеки Vanessa-ADD
### Вывод отладочной информацииУправление выводом логов выполняется с помощью типовой для oscript-library настройки логирования через пакет logos.
Основной лог vanessa-runner имеет название ``oscript.app.vanessa-runner``.
Включение всех отладочных логов:
```bat
rem только для logos версии >=0.6
set LOGOS_CONFIG=logger.rootLogger=DEBUGcall vrunner <параметры запуска>
```Если выводится сообщение про неправильные параметры командной строки:
```bat
set LOGOS_CONFIG=logger.oscript.lib.cmdline=DEBUG
call vrunner <параметры запуска>
```Включит отладочный лог только для библиотеки cmdline, которая анализирует параметры командной строки.
### Дополнительные обработки для режима 1С:ПредприятиеВ папке epf есть несколько обработок, позволяющих упростить развертывание/тестирование для конфигураций, основанных на БСП.
+ Основной пример (см. ниже пример вызова) - это передача через параметры `/C` команды `"ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы"` и одновременная передача через `/Execute "ЗакрытьПредприятие.epf"`.
+ При запуске с такими ключами подключается обработчик ожидания, который проверяет наличие формы с заголовком обновления и при окончании обновления завершает 1С:Предприятие. Данное действие необходимо для полного обновления информационной базы 1С:Предприятия, пока действует блокировка на фоновые задачи и запуск пользователей.
+ также выполняется отключение запроса при завершении работы программы для БСП-конфигураций
+ код запуска
```bat
@call vrunner run --command "ЗапуститьОбновлениеИнформационнойБазы;ЗавершитьРаботуСистемы;" --execute $runnerRoot\epf\ЗакрытьПредприятие.epf
```+ **ЗагрузитьРасширение** позволяет подключать расширение в режиме предприятия и получать результат ошибки. Предназначено для подключения в конфигурациях, основанных на БСП. В параметрах /C передается путь к расширению и путь к файлу лога подключения.
+ **ЗагрузитьВнешниеОбработки** позволяет загрузить все внешние обработки и подключить в справочник "Дополнительные отчеты и обработки", т.к. их очень много то первым параметром идет каталог, вторым параметром путь к файлу лога. Все обработки обновляются согласно версиям.
+ **СозданиеПользователей** позволяет создать первого пользователя-администратора, если в ИБ еще не существует пользователей. Администратор назначается роль `ПолныеПрава`, если она существует в ИБ.
+ также выполняется отключение запроса при завершении работы программы для БСП-конфигураций
+ код запуска для создания пользователя с именем `Администратор`
```bat
@call vrunner run --command "СоздатьАдминистратора;Имя=Администратор;ЗавершитьРаботуСистемы" --execute $runnerRoot\epf\СоздатьПользователей.epf
```
### Дополнительная настройка различных команд
#### Настройка синтаксической проверкиДля управления режима синтаксической проверки рекомендуется использовать json-файл настройки.
Для его использования нужно
- установить путь к нему в параметре `VRUNNER_CONF`
- внутри json-файла нужно добавить секцию `syntax-check`
- список всех используемых параметров можно уточнить, выполнив команду `vrunner help syntax-check`
- ссылка на подготовленный файл [examples\example.env.json](./examples/example.env.json)
- также можно передавать параметры синтакс-проверки через командную строку
- в этом случае режимы проверки должны быть указаны **последним** параметров ком.строки последовательно, через пробел
- например, `vrunner syntax-check --groupbymetadata --mode -ExtendedModulesCheck -Server -ThinClient -ExternalConnection`Пример настройки в файле
```json
{
"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-файле настройки
- например,```json
{
"updatedb": {
"--v2": true,
"--uccode": "test"
},
"init-dev": {
"--v2": true
}
},
"update-dev": {
"--v2": true
}
}
```