Skip to content

Commit 23368a9

Browse files
Merge pull request xDrivenDevelopment#140 from zeratulayuris/rework-features
Переработка сценариев
2 parents 94b0815 + bbf4d58 commit 23368a9

10 files changed

+197
-103
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ oscript v8files-extractor.os ?
106106
Если передан этот флаг, то для операций сборки/разборки будет использован конфигуратор 1С.
107107
ТОЛЬКО ДЛЯ ВЕРСИЙ ПЛАТФОРМЫ 8.3.8 И ВЫШЕ!
108108
--ib-connection-string
109-
Строка подключения к информационной базе
109+
Строка подключения к информационной базе (для Windows-путей обязательно экранировать '\' так: '\\'!)
110110
--ib-user
111111
Имя пользователя в информационной базе
112112
--ib-pwd
@@ -149,7 +149,7 @@ git config --local core.longpaths true
149149
1. Нужно выполнить следующее:
150150

151151
* добавить нужную обработку в индекс git - например, `git add XXX.epf`
152-
* установить переменную среды `LOGOS_CONFIG` или заполнить спец.файл настройки логов
152+
* установить переменную среды `LOGOS_CONFIG` или заполнить спец.файл настройки логов
153153
* выполнить `git commit` или `precommit1c --git-precommit`
154154

155155
+ Например, рядом с файлом `v8files-extractor.os` положить файл `logos.cfg` со следующим текстом `logger.rootLogger=DEBUG`
Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
2+
3+
#Использовать asserts
4+
5+
Перем БДД; //контекст фреймворка 1bdd
6+
7+
// Метод выдает список шагов, реализованных в данном файле-шагов
8+
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
9+
БДД = КонтекстФреймворкаBDD;
10+
11+
ВсеШаги = Новый Массив;
12+
13+
ВсеШаги.Добавить("ВРабочемКаталогеСодержатсяИсходникиОбработкиВФормате");
14+
ВсеШаги.Добавить("ВПодпапкеРабочегоКаталогаСодержатсяИсходникиОбработкиВФормате");
15+
16+
Возврат ВсеШаги;
17+
КонецФункции
18+
19+
// Реализация шагов
20+
21+
// Процедура выполняется перед запуском каждого сценария
22+
Процедура ПередЗапускомСценария(Знач Узел) Экспорт
23+
24+
КонецПроцедуры
25+
26+
// Процедура выполняется после завершения каждого сценария
27+
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт
28+
29+
КонецПроцедуры
30+
31+
32+
//в подпапке "src/1" рабочего каталога содержатся исходники обработки "Fixture" в формате "v8reader"
33+
Процедура ВПодпапкеРабочегоКаталогаСодержатсяИсходникиОбработкиВФормате(Знач Подпапка, Знач ИмяОбработки, Знач Формат) Экспорт
34+
Если Формат = "v8reader" Тогда
35+
ИмяКаталогаИсходниковОбработки = ОбъединитьПути(Подпапка, ИмяОбработки);
36+
ПроверяемИсходникиВРабочемКаталоге(ИмяКаталогаИсходниковОбработки, ОписаниеИсходниковФорматаV8reader());
37+
ИначеЕсли Формат = "designer" Тогда
38+
ИмяКаталогаИсходниковОбработки = ОбъединитьПути(Подпапка, ИмяОбработки);
39+
ПроверяемИсходникиВРабочемКаталоге(ИмяКаталогаИсходниковОбработки, ОписаниеИсходниковФорматаКонфигуратора(ИмяОбработки));
40+
КонецЕсли;
41+
КонецПроцедуры
42+
43+
//в рабочем каталоге содержатся исходники обработки "Fixture" в формате "v8reader"
44+
Процедура ВРабочемКаталогеСодержатсяИсходникиОбработкиВФормате(Знач ИмяОбработки, Знач Формат) Экспорт
45+
Если Формат = "v8reader" Тогда
46+
ПроверяемИсходникиВРабочемКаталоге(ИмяОбработки, ОписаниеИсходниковФорматаV8reader());
47+
ИначеЕсли Формат = "designer" Тогда
48+
ПроверяемИсходникиВРабочемКаталоге(ИмяОбработки, ОписаниеИсходниковФорматаКонфигуратора(ИмяОбработки));
49+
КонецЕсли;
50+
КонецПроцедуры
51+
52+
//{ Служебные методы
53+
54+
Функция РабочийКаталог()
55+
Возврат БДД.ПолучитьИзКонтекста("РабочийКаталог");
56+
КонецФункции
57+
58+
Функция КаталогПроекта()
59+
Возврат БДД.ПолучитьИзКонтекста("КаталогПроекта");
60+
КонецФункции
61+
62+
Процедура ПроверяемИсходникиВРабочемКаталоге(ИмяОбработки, ОписаниеИсходников)
63+
ПроверяемСуществованиеФайлаВРабочемКаталоге(ИмяОбработки, Ложь);
64+
Для каждого КлючИЗначение из ОписаниеИсходников Цикл
65+
ПроверяемСуществованиеФайлаВРабочемКаталоге(ОбъединитьПути(ИмяОбработки, КлючИЗначение.Ключ), КлючИЗначение.Значение);
66+
КонецЦикла;
67+
КонецПроцедуры
68+
69+
Процедура ПроверяемСуществованиеФайлаВРабочемКаталоге(ПутьКФайлу, ЭтоФайл)
70+
Файл = Новый Файл(ОбъединитьПути(РабочийКаталог(), ПутьКФайлу));
71+
Ожидаем.Что(Файл.Существует(), ПутьКФайлу + " должен существовать, а это не так!").ЭтоИстина();
72+
СтрокаОшибки = СтрШаблон("%1: значение Файл.ЭтоФайл() должно %2, а это не так!", ПутьКФайлу, ЭтоФайл);
73+
Ожидаем.Что(Файл.ЭтоФайл() = ЭтоФайл, СтрокаОшибки).ЭтоИстина();
74+
КонецПроцедуры
75+
76+
Функция ОписаниеИсходниковФорматаV8reader()
77+
Описание = Новый Соответствие;
78+
Описание.Вставить("renames.txt", Истина);
79+
Описание.Вставить("Form", Ложь);
80+
Описание.Вставить("Макеты", Ложь);
81+
Описание.Вставить("und", Ложь);
82+
Возврат Описание;
83+
КонецФункции
84+
85+
Функция ОписаниеИсходниковФорматаКонфигуратора(ИмяОбработки)
86+
Описание = Новый Соответствие;
87+
Описание.Вставить(ИмяОбработки + ".xml", Истина);
88+
Описание.Вставить(ИмяОбработки, Ложь);
89+
Описание.Вставить(ОбъединитьПути(ИмяОбработки, "Forms"), Ложь);
90+
Описание.Вставить(ОбъединитьПути(ИмяОбработки, "Templates"), Ложь);
91+
Возврат Описание;
92+
КонецФункции
93+
94+
//}

features/step_definitions/РепозиторийGit.os

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
1+
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
22
#Использовать 1commands
33
#Использовать asserts
44

@@ -12,6 +12,7 @@
1212
ВсеШаги = Новый Массив;
1313

1414
ВсеШаги.Добавить("ЯУстанавливаюPrecommitВРабочийКаталогСПараметрами");
15+
ВсеШаги.Добавить("ВРабочемКаталогеУстановленPrecommit");
1516
ВсеШаги.Добавить("ФайлХукаВРепозиторииРабочегоКаталогаСодержит");
1617

1718
Возврат ВсеШаги;
@@ -36,7 +37,7 @@
3637
ПараметрыКоманды.Добавить(ОбъединитьПути(КаталогПроекта(), "v8files-extractor.os"));
3738
ПараметрыКоманды.Добавить("--install");
3839
Если ЗначениеЗаполнено(Параметры) Тогда
39-
ПараметрыКоманды.Добавить(Параметры);
40+
ПараметрыКоманды.Добавить(ЗаменитьШаблоныВПараметрахКоманды(Параметры));
4041
КонецЕсли;
4142

4243
Команда = Новый Команда;
@@ -66,6 +67,17 @@
6667
БДД.ВыполнитьШаг(СтрокаШага);
6768
КонецПроцедуры
6869

70+
//в рабочем каталоге установлен precommit
71+
Процедура ВРабочемКаталогеУстановленPrecommit() Экспорт
72+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks");
73+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/v8Reader");
74+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/tools");
75+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/v8Reader/V8Reader.epf");
76+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/pre-commit");
77+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/v8files-extractor.os");
78+
ПроверяемСуществованиеФайлаВРабочемКаталоге(".git/hooks/tools/v8unpack.exe");
79+
КонецПроцедуры
80+
6981
//{ Служебные методы
7082

7183
Функция РабочийКаталог()
@@ -76,6 +88,23 @@
7688
Возврат БДД.ПолучитьИзКонтекста("КаталогПроекта");
7789
КонецФункции
7890

91+
Процедура ПроверяемСуществованиеФайлаВРабочемКаталоге(ПутьКФайлу)
92+
Файл = Новый Файл(ОбъединитьПути(РабочийКаталог(), ПутьКФайлу));
93+
Ожидаем.Что(Файл.Существует(), ПутьКФайлу + " должен существовать, а это не так!").ЭтоИстина();
94+
КонецПроцедуры
95+
96+
Функция ЗаменитьШаблоныВПараметрахКоманды(Знач ПараметрыКоманды)
97+
Рез = СтрЗаменить(ПараметрыКоманды, "<КаталогПроекта>", ЭкранированныйПуть(КаталогПроекта()));
98+
Рез = СтрЗаменить(Рез, "<РабочийКаталог>", ЭкранированныйПуть(РабочийКаталог()));
99+
Возврат Рез;
100+
КонецФункции
101+
102+
Функция ЭкранированныйПуть(Знач Путь)
103+
Рег = Новый РегулярноеВыражение("(?<!\\)\\(?!\\)");
104+
Рез = Рег.Заменить(Путь, "\\");
105+
Возврат Рез;
106+
КонецФункции
107+
79108
//}
80109

81-
Лог = Логирование.ПолучитьЛог("bdd");
110+
Лог = Логирование.ПолучитьЛог("bdd");

features/РазборкаНаИсходники.feature

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -13,26 +13,18 @@
1313

1414
Сценарий: Разборка файла из заданной папки
1515
Когда я выполняю команду "oscript" с параметрами "<КаталогПроекта>/v8files-extractor.os --decompile <КаталогПроекта>/tests/Fixture.epf <РабочийКаталог>"
16-
Тогда в рабочем каталоге существует каталог "Fixture"
17-
И в подкаталоге "Fixture" рабочего каталога существует файл "renames.txt"
18-
И в подкаталоге "Fixture" рабочего каталога существует каталог "Form"
19-
И в подкаталоге "Fixture" рабочего каталога существует каталог "Макеты"
20-
И в подкаталоге "Fixture" рабочего каталога существует каталог "und"
16+
Тогда в рабочем каталоге содержатся исходники обработки "Fixture" в формате "v8reader"
2117

2218
Сценарий: Разборка макета из заданной папки
23-
Когда я создаю каталог "1" в рабочем каталоге
19+
Дано я создаю каталог "1" в рабочем каталоге
2420
И я копирую файл "Fixture.mxl" из каталога "tests" проекта в подкаталог "1" рабочего каталога
25-
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/v8files-extractor.os --decompile <РабочийКаталог>/1/Fixture.mxl <РабочийКаталог>/1"
26-
Тогда в подкаталоге "1" рабочего каталогасуществует файл "Fixture_mxl.txt"
21+
Когда я выполняю команду "oscript" с параметрами "<КаталогПроекта>/v8files-extractor.os --decompile <РабочийКаталог>/1/Fixture.mxl <РабочийКаталог>/1"
22+
Тогда в подкаталоге "1" рабочего каталога существует файл "Fixture_mxl.txt"
2723

2824
Сценарий: Разборка каталога с вложенными каталогами
29-
Когда я создаю каталог "bin" в рабочем каталоге
25+
Дано я создаю каталог "bin" в рабочем каталоге
3026
И я создаю каталог "1" в подкаталоге "bin" рабочего каталога
3127
И я копирую файл "Fixture.epf" из каталога "tests" проекта в подкаталог "bin/1" рабочего каталога
3228
И я создаю каталог "src" в рабочем каталоге
33-
И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/v8files-extractor.os --decompile <РабочийКаталог>/bin <РабочийКаталог>/src"
34-
Тогда в рабочем каталоге существует каталог "src/1/Fixture"
35-
И в подкаталоге "src/1/Fixture" рабочего каталога существует файл "renames.txt"
36-
И в подкаталоге "src/1/Fixture" рабочего каталога существует каталог "Form"
37-
И в подкаталоге "src/1/Fixture" рабочего каталога существует каталог "Макеты"
38-
И в подкаталоге "src/1/Fixture" рабочего каталога существует каталог "und"
29+
Когда я выполняю команду "oscript" с параметрами "<КаталогПроекта>/v8files-extractor.os --decompile <РабочийКаталог>/bin <РабочийКаталог>/src"
30+
Тогда в подпапке "src/1" рабочего каталога содержатся исходники обработки "Fixture" в формате "v8reader"

0 commit comments

Comments
 (0)