Skip to content

Commit fab9cd5

Browse files
committed
Добавлена выгрузка расширений + тесты
1 parent 0d9d425 commit fab9cd5

File tree

27 files changed

+1060
-18
lines changed

27 files changed

+1060
-18
lines changed

features/edtExport.feature

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
И Я устанавливаю путь выполнения команды "gitsync" к текущей библиотеке
1313
И Я устанавливаю текущие плагины
1414
И Я создаю временный каталог и сохраняю его в переменной "КаталогХранилища1С"
15+
И Я создаю временный каталог и сохраняю его в переменной "РабочееОкружениеEDT"
1516
И я скопировал каталог тестового хранилища конфигурации в каталог из переменной "КаталогХранилища1С"
1617
И Я создаю временный каталог и сохраняю его в переменной "ПутьКаталогаИсходников"
1718
И Я инициализирую репозиторий в каталоге из переменной "ПутьКаталогаИсходников"
@@ -34,12 +35,26 @@
3435
И Вывод команды "gitsync" не содержит "Внешнее исключение"
3536
И Код возврата команды "gitsync" равен 0
3637

37-
# Сценарий: Cинхронизация хранилища расширения с использованием edtExport
38-
# Допустим Я скопировал каталог тестового хранилища конфигурации расширения в каталог из переменной "КаталогХранилища1С"
39-
# И Я добавляю параметр "-e test" для команды "gitsync"
40-
# И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
41-
# И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
42-
# Когда Я выполняю команду "gitsync"
43-
# Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Завершена синхронизации с git"
44-
# И Вывод команды "gitsync" не содержит "Внешнее исключение"
45-
# И Код возврата команды "gitsync" равен 0
38+
Сценарий: Cинхронизация хранилища расширения с использованием edtExport без указания базового проекта
39+
Допустим Я скопировал каталог тестового хранилища конфигурации расширения в каталог из переменной "КаталогХранилища1С"
40+
И я скопировал каталог рабочего окружения EDT в каталог из переменной "РабочееОкружениеEDT"
41+
И Я добавляю параметр "-e test" для команды "gitsync"
42+
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
43+
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
44+
Когда Я выполняю команду "gitsync"
45+
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Завершена синхронизации с git"
46+
И Вывод команды "gitsync" не содержит "Внешнее исключение"
47+
И Код возврата команды "gitsync" равен 0
48+
49+
Сценарий: Cинхронизация хранилища расширения с использованием edtExport c указанием базового проекта
50+
Допустим Я скопировал каталог тестового хранилища конфигурации расширения в каталог из переменной "КаталогХранилища1С"
51+
И я скопировал каталог рабочего окружения EDT в каталог из переменной "РабочееОкружениеEDT"
52+
И Я добавляю параметр "-e test" для команды "gitsync"
53+
И Я добавляю параметр "-W" для команды "gitsync" из переменной "РабочееОкружениеEDT"
54+
И Я добавляю параметр "-B edtExport" для команды "gitsync"
55+
И Я добавляю позиционный параметр для команды "gitsync" из переменной "КаталогХранилища1С"
56+
И Я добавляю позиционный параметр для команды "gitsync" из переменной "ПутьКаталогаИсходников"
57+
Когда Я выполняю команду "gitsync"
58+
Тогда Вывод команды "gitsync" содержит "ИНФОРМАЦИЯ - Завершена синхронизации с git"
59+
И Вывод команды "gitsync" не содержит "Внешнее исключение"
60+
И Код возврата команды "gitsync" равен 0
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#Использовать fs
2+
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
3+
4+
Перем БДД; //контекст фреймворка 1bdd
5+
6+
// Метод выдает список шагов, реализованных в данном файле-шагов
7+
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
8+
БДД = КонтекстФреймворкаBDD;
9+
10+
ВсеШаги = Новый Массив;
11+
12+
ВсеШаги.Добавить("ЯСкопировалКаталогРабочегоОкруженияEDTВКаталогИзПеременной");
13+
14+
Возврат ВсеШаги;
15+
КонецФункции
16+
17+
// Реализация шагов
18+
19+
// Процедура выполняется перед запуском каждого сценария
20+
Процедура ПередЗапускомСценария(Знач Узел) Экспорт
21+
22+
КонецПроцедуры
23+
24+
// Процедура выполняется после завершения каждого сценария
25+
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт
26+
27+
КонецПроцедуры
28+
29+
30+
//я скопировал каталог рабочего окружения EDT в каталог из переменной "РабочееОкружениеEDT"
31+
Процедура ЯСкопировалКаталогРабочегоОкруженияEDTВКаталогИзПеременной(Знач ИмяПеременной) Экспорт
32+
РабочееОкружениеEDT = БДД.ПолучитьИзКонтекста(ИмяПеременной);
33+
ФС.ОбеспечитьПустойКаталог(РабочееОкружениеEDT);
34+
ФС.КопироватьСодержимоеКаталога(ПутьКРабочемуОкружениюEDT(), РабочееОкружениеEDT);
35+
КонецПроцедуры
36+
37+
Функция ПутьКРабочемуОкружениюEDT()
38+
39+
Возврат ОбъединитьПути(КаталогFixtures(), "edtWorkspace");
40+
41+
КонецФункции
42+
43+
Функция КаталогFixtures()
44+
Возврат ОбъединитьПути(КаталогГитсинк(), "tests", "fixtures");
45+
КонецФункции
46+
47+
Функция КаталогГитсинк()
48+
Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "..", "..");
49+
КонецФункции

src/Классы/edtExport.os

Lines changed: 54 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
Перем КомандыПлагина;
99

1010
Перем ИмяПроекта;
11+
Перем РабочееПространство;
12+
Перем ИмяРасширения;
13+
Перем ИмяБазовогоПроекта;
1114

1215
#Область Интерфейс_плагина
1316

@@ -76,6 +79,14 @@
7679

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

82+
// BSLLS:UnusedParameters-off
83+
Процедура ПередНачаломВыполнения(ПутьКХранилищу, КаталогРабочейКопии) Экспорт
84+
// BSLLS:UnusedParameters-on
85+
86+
ИмяРасширения = Обработчик.ПолучитьИмяРасширения();
87+
88+
КонецПроцедуры
89+
7990
Процедура ПриРегистрацииКомандыПриложения(ИмяКоманды, КлассРеализации) Экспорт
8091

8192
Лог.Отладка("Ищу команду <%1> в списке поддерживаемых", ИмяКоманды);
@@ -85,17 +96,39 @@
8596

8697
Лог.Отладка("Устанавливаю дополнительные параметры для команды %1", ИмяКоманды);
8798

88-
КлассРеализации.Опция("P project-name", , "[*edtExport] Имя проекта")
99+
КлассРеализации.Опция("P project-name", "", "[*edtExport] Имя проекта")
89100
.ТСтрока()
90101
.ВОкружении("GITSYNC_PROJECT_NAME");
91102

103+
КлассРеализации.Опция("W workspace-location", "", "[*edtExport] расположение рабочей области")
104+
.ТСтрока()
105+
.ВОкружении("GITSYNC_WORKSPACE_LOCATION");
106+
107+
КлассРеализации.Опция(
108+
"B base-project-name",
109+
"",
110+
"[*edtExport] имя базового проекта в рабочей области (для расширений))")
111+
.ТСтрока()
112+
.ВОкружении("GITSYNC_BASE_PROJECT_NAME");
113+
92114
КонецПроцедуры
93115

94116
Процедура ПриПолученииПараметров(ПараметрыКоманды) Экспорт
95117

96-
ИмяПроекта = ПараметрыКоманды.Параметр("project-name");
118+
ИмяПроекта = ПараметрыКоманды.Параметр("project-name");
119+
РабочееПространство = ПараметрыКоманды.Параметр("workspace-location");
120+
ИмяБазовогоПроекта = ПараметрыКоманды.Параметр("base-project-name");
97121

98-
Если Не ЗначениеЗаполнено(ИмяПроекта) Тогда
122+
Если Не ПустаяСтрока(ИмяРасширения)
123+
И Не ПустаяСтрока(ИмяБазовогоПроекта)
124+
И ПустаяСтрока(РабочееПространство) Тогда
125+
126+
ВызватьИсключение "При конвертации расширений с указанием базового проекта,
127+
|параметр workspace-location обязателен";
128+
129+
КонецЕсли;
130+
131+
Если ПустаяСтрока(ИмяПроекта) Тогда
99132
ВызватьИсключение "Не заполнено имя проекта";
100133
КонецЕсли;
101134

@@ -113,21 +146,29 @@
113146
Лог.Отладка("Начинаю выгрузку EDT");
114147
Лог.Отладка("Имя проекта: %1", ИмяПроекта);
115148

116-
РабочееПространство = ВременныеФайлы.СоздатьКаталог();
117-
118-
Лог.Отладка("Рабочее пространство EDT: %1", РабочееПространство);
149+
ВременноеРабочееПространство = ВременныеФайлы.СоздатьКаталог();
150+
Если Не ПустаяСтрока(РабочееПространство) Тогда
151+
ФС.КопироватьСодержимоеКаталога(РабочееПространство, ВременноеРабочееПространство);
152+
КонецЕсли;
153+
154+
Лог.Отладка("Рабочее пространство EDT: %1", ВременноеРабочееПространство);
119155

120-
КаталогПроекта = ОбъединитьПути(РабочееПространство, ИмяПроекта);
156+
КаталогПроекта = ОбъединитьПути(ВременноеРабочееПространство, ИмяПроекта);
121157

122158
Лог.Отладка("Каталог проекта EDT: %1", КаталогПроекта);
159+
ФС.ОбеспечитьПустойКаталог(КаталогПроекта);
123160

124161
Команда = Новый Команда;
125162

126163
Параметры = Новый Массив();
127164
Параметры.Добавить(СтрШаблон("--configuration-files ""%1""", КаталогВыгрузки));
128-
Параметры.Добавить(СтрШаблон("--workspace-location ""%1""", РабочееПространство));
129-
Параметры.Добавить(СтрШаблон("--project ""%1""", КаталогПроекта));
165+
Параметры.Добавить(СтрШаблон("--workspace-location ""%1""", ВременноеРабочееПространство));
166+
Параметры.Добавить(СтрШаблон("--project ""%1""", КаталогПроекта));
130167

168+
Если Не ПустаяСтрока(ИмяРасширения) И Не ПустаяСтрока(ИмяБазовогоПроекта) Тогда
169+
Параметры.Добавить(СтрШаблон("--base-project-name ""%1""", ИмяБазовогоПроекта));
170+
КонецЕсли;
171+
131172
Команда.УстановитьСтрокуЗапуска("ring edt workspace import");
132173
Команда.УстановитьКодировкуВывода(КодировкаТекста.ANSI);
133174
Команда.ДобавитьЛогВыводаКоманды("oscript.lib.gitsync.plugins.edtExport");
@@ -155,6 +196,10 @@
155196
Лог = Логирование.ПолучитьЛог(ИмяЛога());
156197
КомандыПлагина = Новый Массив;
157198
КомандыПлагина.Добавить("sync");
199+
200+
ИмяРасширения = "";
201+
РабочееПространство = "";
202+
ИмяБазовогоПроекта = "";
158203

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

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
#GitProjectData
2+
#Tue May 12 11:59:34 VLAT 2020
3+
.gitdir=../../../../.git
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+

Binary file not shown.

0 commit comments

Comments
 (0)