Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/workflows/qa.yml
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,12 @@ jobs:
- name: Настройка sonar-scanner
uses: warchant/setup-sonar-scanner@v8

- name: Настройка Java 21 для SonarScanner
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '21'

- name: Анализ в SonarQube (branch)
if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
env:
Expand Down
45 changes: 42 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,15 +21,16 @@
- [Использование](#использование)
- [Создание проекта](#создание-проекта)
- [Примеры создания проекта](#примеры-создания-проекта)
- [1. Создание проекта по указанному шаблону](#1-создание-проекта-по-указанному-шаблону)
- [2. Создание проекта по файлу настроек](#2-создание-проекта-по-файлу-настроек)
- [3. Сборка обработок при создании проекта](#3-сборка-обработок-при-создании-проекта)
- [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-переопределение-аргументов-запуска)
- [Переопределение каталога платформы и имен exe](#переопределение-каталога-платформы-и-имен-exe)
- [Переопределение переменной окружения](#переопределение-переменной-окружения)
- [Установка значения](#установка-значения)
- [Шаблонные переменные](#шаблонные-переменные)
Expand Down Expand Up @@ -366,6 +367,44 @@ vrunner vanessa --path <bddPath> [прочие-ключи] ...
+ Потом, если настройка есть в переменной окружения, тогда берем из неe.
+ Если же настройка есть, как в файле json, так и в переменной окружения и непосредственно в командной строке, то берем настройку из командной строки.

##### Переопределение каталога платформы и имен exe

Если платформа 1С установлена не в типовом каталоге или используются другие имена исполняемых файлов,
можно явно задать параметры запуска:

+ `--v8-platform-path` - путь к каталогу платформы 1С (например, `C:\Program Files\1cv8`).
+ `--v8version` - версия платформы.
+ `--v8-exe-name` - имя `exe` для Конфигуратора/толстого клиента.
+ `--v8c-exe-name` - имя `exe` тонкого клиента.
+ `--ibcmd-exe-name` - имя `exe` утилиты `ibcmd`.

Путь к исполняемому файлу формируется по шаблону: `<platform>\<version>\bin\<exeName>`.

Указать их можно любым поддерживаемым способом:

+ в `env.json`/`--settings`:

```json
{
"default": {
"--v8-platform-path": "C:/Program Files/1cv8",
"--v8version": "8.3.27.1234",
"--v8-exe-name": "1cv8.exe",
"--v8c-exe-name": "1cv8c.exe",
"--ibcmd-exe-name": "ibcmd.exe"
}
}
```

+ через переменные окружения:
`RUNNER_V8_PLATFORM_PATH`, `RUNNER_V8_EXE_NAME`, `RUNNER_V8C_EXE_NAME`, `RUNNER_IBCMD_EXE_NAME`;

+ напрямую в командной строке:

```cmd
vrunner run --v8-platform-path "C:\Program Files\1cv8" --v8version "8.3.27.1234" --v8-exe-name "1cv8.exe" --v8c-exe-name "1cv8c.exe"
```

Например:

<a id="markdown-переопределение-переменной-окружения" name="переопределение-переменной-окружения"></a>
Expand Down
4 changes: 0 additions & 4 deletions features/ПроверкаТестов.feature
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@
| ИНФОРМАЦИЯ - Все тесты выполнены! |
| Выполнение тестов завершено |
И я вижу в консоли вывод "Сформирован отчет тестирования <РабочийКаталог>\junitreport\xddreport.xml"
И я вижу в консоли вывод "Сформирован отчет тестирования <РабочийКаталог>\allurereport\allure-testsuite.xml"

И Код возврата команды "oscript" равен 0
Тогда файл "junitreport/*.xml" существует
Expand Down Expand Up @@ -82,7 +81,6 @@
| ИНФОРМАЦИЯ - Все тесты выполнены! |
| Выполнение тестов завершено |
И я вижу в консоли вывод "Сформирован отчет тестирования <РабочийКаталог>/junitreport/xddreport.xml"
И я вижу в консоли вывод "Сформирован отчет тестирования <РабочийКаталог>/allurereport/allure-testsuite.xml"

И Код возврата команды "oscript" равен 0
Тогда файл "junitreport/*.xml" существует
Expand Down Expand Up @@ -280,7 +278,6 @@
| ИНФОРМАЦИЯ - Все тесты выполнены! |
| Выполнение тестов завершено |
И я вижу в консоли вывод "Сформирован отчет тестирования <РабочийКаталог>\junitreport\xddreport.xml"
И я вижу в консоли вывод "Сформирован отчет тестирования <РабочийКаталог>\allurereport\allure-testsuite.xml"

И Код возврата команды "oscript" равен 0
И файл "junitreport/dummy-for-delete.xml" не существует
Expand Down Expand Up @@ -313,7 +310,6 @@
| ИНФОРМАЦИЯ - Все тесты выполнены! |
| Выполнение тестов завершено |
И я вижу в консоли вывод "Сформирован отчет тестирования <РабочийКаталог>/junitreport/xddreport.xml"
И я вижу в консоли вывод "Сформирован отчет тестирования <РабочийКаталог>/allurereport/allure-testsuite.xml"

И Код возврата команды "oscript" равен 0
И файл "junitreport/dummy-for-delete.xml" не существует
Expand Down
13 changes: 12 additions & 1 deletion src/Классы/МенеджерIbcmd.os
Original file line number Diff line number Diff line change
Expand Up @@ -402,7 +402,18 @@
Процедура Конструктор(Знач ДанныеПодключения, Знач ПараметрыКоманды) Экспорт

ВерсияПлатформы = ДанныеПодключения.ВерсияПлатформы;
Если ЗначениеЗаполнено(ВерсияПлатформы) Тогда
КаталогПлатформы = ПараметрыКоманды["--v8-platform-path"];
ИмяФайлаIbcmd = ПараметрыКоманды["--ibcmd-exe-name"];
ПутьКIbcmdИзПараметров = ОбщиеМетоды.ПолучитьПутьКExeФайлуПлатформы(
КаталогПлатформы,
ВерсияПлатформы,
ИмяФайлаIbcmd,
ОбщиеМетоды.ИмяИсполняемогоФайлаПоУмолчанию("ibcmd"),
"--ibcmd-exe-name",
"Конструктор");
Если ЗначениеЗаполнено(ПутьКIbcmdИзПараметров) Тогда
УправлениеИБ.ПутьКПриложению(ПутьКIbcmdИзПараметров);
ИначеЕсли ЗначениеЗаполнено(ВерсияПлатформы) Тогда
Если ЗначениеЗаполнено(ДанныеПодключения.РазрядностьПлатформы) Тогда
Разрядность = ОбщиеМетоды.РазрядностьПлатформы(ДанныеПодключения.РазрядностьПлатформы);
Лог.Отладка("Разрядность платформы 1С указана %1", ДанныеПодключения.РазрядностьПлатформы);
Expand Down
70 changes: 64 additions & 6 deletions src/Классы/МенеджерКонфигуратора.os
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@
Перем УправлениеКонфигуратором;
Перем КаталогВременнойИБ;
Перем ПараметрыХранилища;
Перем ПутьКИсполняемомуФайлуПлатформы;
Перем ПутьКТонкомуКлиенту;
Перем ИмяФайлаТонкогоКлиента;
Перем ЯвноУказаннаяВерсияПлатформы;
Перем КаталогПлатформы1С;

#КонецОбласти

Expand Down Expand Up @@ -88,7 +93,29 @@
УправлениеКонфигуратором.КаталогСборки(КаталогВременнойИБ);

УправлениеКонфигуратором.УстановитьКонтекст(СтрокаПодключения, Пользователь, Пароль);
Если НЕ ПустаяСтрока(ВерсияПлатформы) Тогда
КаталогПлатформы1С = "";
ПутьКИсполняемомуФайлуПлатформы = "";
ПутьКТонкомуКлиенту = "";
ИмяФайлаПлатформы = "";
ИмяФайлаТонкогоКлиента = "";
ЯвноУказаннаяВерсияПлатформы = ВерсияПлатформы;
Если ЗначениеЗаполнено(ПараметрыКоманды) Тогда
КаталогПлатформы1С = ПараметрыКоманды["--v8-platform-path"];
ИмяФайлаПлатформы = ПараметрыКоманды["--v8-exe-name"];
ИмяФайлаТонкогоКлиента = ПараметрыКоманды["--v8c-exe-name"];
КонецЕсли;

ПутьКИсполняемомуФайлуПлатформы = ОбщиеМетоды.ПолучитьПутьКExeФайлуПлатформы(
КаталогПлатформы1С,
ВерсияПлатформы,
ИмяФайлаПлатформы,
ОбщиеМетоды.ИмяИсполняемогоФайлаПоУмолчанию("1cv8"),
"--v8-exe-name",
ТекущаяПроцедура);

Если ЗначениеЗаполнено(ПутьКИсполняемомуФайлуПлатформы) Тогда
УправлениеКонфигуратором.ПутьКПлатформе1С(ПутьКИсполняемомуФайлуПлатформы);
ИначеЕсли НЕ ПустаяСтрока(ВерсияПлатформы) Тогда
Если ЗначениеЗаполнено(ПараметрыКоманды) Тогда
Разрядность = ПараметрыКоманды["--bitness"];
Разрядность = ОбщиеМетоды.РазрядностьПлатформы(Разрядность);
Expand All @@ -102,6 +129,7 @@
ПутьКПредприятию = Платформа1С.ПутьКПредприятию("8.3");
УправлениеКонфигуратором.ПутьКПлатформе1С(ПутьКПредприятию);
КонецЕсли;

Лог.Информация("Используется версия платформы %1", ТекущаяВерсияПлатформы());

Если Не ПустаяСтрока(КлючРазрешенияЗапуска) Тогда
Expand Down Expand Up @@ -1485,7 +1513,10 @@
ТекущаяПроцедура = ДопСообщения.Ключ;

Если ТолстыйКлиент = Ложь Тогда
ТонкийКлиент1С = УправлениеКонфигуратором.ПутьКТонкомуКлиенту1С(УправлениеКонфигуратором.ПутьКПлатформе1С());
ТонкийКлиент1С = ПолучитьПутьКТонкомуКлиенту();
Если НЕ ЗначениеЗаполнено(ТонкийКлиент1С) Тогда
ТонкийКлиент1С = УправлениеКонфигуратором.ПутьКТонкомуКлиенту1С(УправлениеКонфигуратором.ПутьКПлатформе1С());
КонецЕсли;
УправлениеКонфигуратором.ПутьКПлатформе1С(ТонкийКлиент1С);
КонецЕсли;

Expand Down Expand Up @@ -1583,7 +1614,10 @@
СтрокаЗапуска = СтрокаЗапуска + " " + Параметр;
КонецЦикла;

Приложение = УправлениеКонфигуратором.ПутьКТонкомуКлиенту1С();
Приложение = ПолучитьПутьКТонкомуКлиенту();
Если НЕ ЗначениеЗаполнено(Приложение) Тогда
Приложение = УправлениеКонфигуратором.ПутьКТонкомуКлиенту1С();
КонецЕсли;
Если ТолстыйКлиент = Истина Тогда
Приложение = УправлениеКонфигуратором.ПутьКПлатформе1С();
КонецЕсли;
Expand Down Expand Up @@ -1814,16 +1848,40 @@

КонецПроцедуры

Функция ПолучитьПутьКТонкомуКлиенту()
Если ЗначениеЗаполнено(ПутьКТонкомуКлиенту) Тогда
Возврат ПутьКТонкомуКлиенту;
КонецЕсли;

ПутьКТонкомуКлиенту = ОбщиеМетоды.ПолучитьПутьКExeФайлуПлатформы(
КаталогПлатформы1С,
ЯвноУказаннаяВерсияПлатформы,
ИмяФайлаТонкогоКлиента,
ОбщиеМетоды.ИмяИсполняемогоФайлаПоУмолчанию("1cv8c"),
"--v8c-exe-name",
"Инициализация");

Возврат ПутьКТонкомуКлиенту;
КонецФункции

Функция ТекущаяВерсияПлатформы()

ПутьПредприятия = УправлениеКонфигуратором.ПутьКПлатформе1С();
ШаблонВерсии = Новый РегулярноеВыражение("8(\.\d+){3}");
ВсеСовпадения = ШаблонВерсии.НайтиСовпадения(ПутьПредприятия);
Если ВсеСовпадения.Количество() = 0 Тогда
ВызватьИсключение "Неопределена версия платформы!";
Если ВсеСовпадения.Количество() > 0 Тогда
Возврат ВсеСовпадения[0].Значение;
КонецЕсли;

Если ЗначениеЗаполнено(ЯвноУказаннаяВерсияПлатформы) Тогда
Возврат ЯвноУказаннаяВерсияПлатформы;
КонецЕсли;

Если ЗначениеЗаполнено(ПутьКИсполняемомуФайлуПлатформы) Тогда
Возврат ПутьКИсполняемомуФайлуПлатформы;
КонецЕсли;

Возврат ВсеСовпадения[0].Значение;
ВызватьИсключение "Неопределена версия платформы!";

КонецФункции

Expand Down
Loading
Loading