|
12 | 12 |
|
13 | 13 | ВсеШаги = Новый Массив; |
14 | 14 |
|
| 15 | + ВсеШаги.Добавить("ОчищаюПараметрыГитсинкВКонтексте"); |
15 | 16 | ВсеШаги.Добавить("ЯПодготовилТестовыйКаталог"); |
16 | 17 | ВсеШаги.Добавить("ЯУстановилТестовыйКаталогКакТекущий"); |
17 | 18 | ВсеШаги.Добавить("ЯПодключилКаталогТестовогоХранилищаКонфигурации"); |
|
27 | 28 | Возврат ВсеШаги; |
28 | 29 | КонецФункции |
29 | 30 |
|
| 31 | + |
30 | 32 | // Реализация шагов |
31 | 33 |
|
32 | 34 | // Процедура выполняется перед запуском каждого сценария |
33 | 35 | Процедура ПередЗапускомСценария(Знач Узел) Экспорт |
34 | | - |
35 | 36 | КонецПроцедуры |
36 | 37 |
|
37 | 38 | // Процедура выполняется после завершения каждого сценария |
38 | 39 | Процедура ПослеЗапускаСценария(Знач Узел) Экспорт |
39 | | - |
40 | 40 | КонецПроцедуры |
41 | 41 |
|
42 | 42 | Функция ИмяЛога() Экспорт |
43 | 43 | Возврат "bdd.gitsync.feature"; |
44 | 44 | КонецФункции |
45 | 45 |
|
| 46 | +//очищаю параметры гитсинк в контексте |
| 47 | +Процедура ОчищаюПараметрыГитсинкВКонтексте() Экспорт |
| 48 | + БДД.СохранитьВКонтекст("ПараметрыГитсинк", ""); |
| 49 | +КонецПроцедуры |
| 50 | + |
46 | 51 | //я подготовил тестовый каталог |
47 | 52 | Процедура ЯПодготовилТестовыйКаталог() Экспорт |
48 | 53 | ВременныйКаталог = Новый Файл(ВременныеФайлы.СоздатьКаталог()); |
|
60 | 65 |
|
61 | 66 | //я подключил каталог тестового хранилища конфигурации |
62 | 67 | Процедура ЯПодключилКаталогТестовогоХранилищаКонфигурации() Экспорт |
63 | | - БДД.СохранитьВКонтекст("ПутьКФайлуХранилища1С", ПутьКВременномуФайлуХранилища1С()); |
| 68 | + БДД.СохранитьВКонтекст("ПутьКФайлуХранилища1С", Новый Файл(ПутьКВременномуФайлуХранилища1С())); |
64 | 69 | КонецПроцедуры |
65 | 70 |
|
66 | 71 | //я создал каталог git-репозитория "git-repo" |
67 | 72 | Процедура ЯСоздалКаталогGit_Репозитория(Знач ПутьГитРепозитория) Экспорт |
68 | 73 | ПутьГитРепозитория = ОбъединитьПути(ТекущийКаталог(), ПутьГитРепозитория); |
69 | 74 | Лог.Отладка(СтрШаблон("ПутьГитРепозитория <%1>", ПутьГитРепозитория)); |
| 75 | + СоздатьКаталог(ПутьГитРепозитория); |
| 76 | + |
70 | 77 | КодВозврата = ИнициализироватьТестовоеХранилищеГит(ПутьГитРепозитория); |
71 | 78 | Ожидаем.Что(КодВозврата, "неверно выполнена команда git init").Равно(0); |
72 | 79 | КонецПроцедуры |
|
78 | 85 |
|
79 | 86 | //я создал каталог исходников |
80 | 87 | Процедура ЯСоздалКаталогИсходников() Экспорт |
81 | | - ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯСоздалКаталогИсходников> не реализован", "Не реализовано."); |
| 88 | + ПутьКаталогаИсходников = ОбъединитьПути(ТекущийКаталог(), "src"); |
| 89 | + СоздатьКаталог(ПутьКаталогаИсходников); |
| 90 | + БДД.СохранитьВКонтекст("ПутьКаталогаИсходников", Новый Файл(ПутьКаталогаИсходников)); |
82 | 91 | КонецПроцедуры |
83 | 92 |
|
84 | 93 | //я передаю путь тестового каталога хранилища конфигурации для запуска gitsync |
85 | 94 | Процедура ЯПередаюПутьТестовогоКаталогаХранилищаКонфигурацииДляЗапускаGitsync() Экспорт |
86 | | - ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯПередаюПутьТестовогоКаталогаХранилищаКонфигурацииДляЗапускаGitsync> не реализован", "Не реализовано."); |
| 95 | + ДобавитьПараметрыГитсинк(БДД.ПолучитьИзКонтекста("ПутьКФайлуХранилища1С").ПолноеИмя); |
87 | 96 | КонецПроцедуры |
88 | 97 |
|
89 | 98 | //я передаю путь каталога исходников для запуска gitsync |
90 | 99 | Процедура ЯПередаюПутьКаталогаИсходниковДляЗапускаGitsync() Экспорт |
91 | | - ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯПередаюПутьКаталогаИсходниковДляЗапускаGitsync> не реализован", "Не реализовано."); |
| 100 | + ДобавитьПараметрыГитсинк(КаталогИсходниковИзКонтекстаБДД()); |
92 | 101 | КонецПроцедуры |
93 | 102 |
|
94 | 103 | //я выполняю команду gitsync "init" |
95 | | -Процедура ЯВыполняюКомандуGitsync(Знач ПарамСтрока1) Экспорт |
96 | | - ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯВыполняюКомандуGitsync> не реализован", "Не реализовано."); |
| 104 | +Процедура ЯВыполняюКомандуGitsync(Знач Команда) Экспорт |
| 105 | + ПутьГитсинк = ОбъединитьПути(КаталогГитсинк(), "src", "gitsync.os"); |
| 106 | + |
| 107 | + ОжидаемыйКодВозврата = 0; |
| 108 | + |
| 109 | + СтрокаКоманды = СтрШаблон("oscript.exe %1 %2 %3 %4", "-encoding=utf-8", ПутьГитсинк, Команда, БДД.ПолучитьИзКонтекста("ПараметрыГитсинк")); |
| 110 | + |
| 111 | + ТекстФайла = ""; |
| 112 | + КодВозврата = ВыполнитьПроцесс(СтрокаКоманды, ТекстФайла); |
| 113 | + |
| 114 | + БДД.СохранитьВКонтекст("ТекстЛогФайлаГитсинк", ТекстФайла); |
| 115 | + |
| 116 | + Если КодВозврата <> ОжидаемыйКодВозврата Тогда |
| 117 | + ВывестиТекст(ТекстФайла); |
| 118 | + Ожидаем.Что(КодВозврата, "Код возврата в ЯВыполняюКомандуGitsync").Равно(ОжидаемыйКодВозврата); |
| 119 | + КонецЕсли; |
97 | 120 | КонецПроцедуры |
98 | 121 |
|
99 | 122 | //в каталоге исходников создается файл "AUTHORS" |
100 | | -Процедура ВКаталогеИсходниковСоздаетсяФайл(Знач ПарамСтрока1) Экспорт |
101 | | - ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ВКаталогеИсходниковСоздаетсяФайл> не реализован", "Не реализовано."); |
| 123 | +Процедура ВКаталогеИсходниковСоздаетсяФайл(Знач ПутьФайла) Экспорт |
| 124 | + ИскомыйФайл = Новый Файл(ОбъединитьПути(КаталогИсходниковИзКонтекстаБДД(), ПутьФайла)); |
| 125 | + Ожидаем.Что(ИскомыйФайл.Существует(), "Файл должен был существовать").ЭтоИстина(); |
102 | 126 | КонецПроцедуры |
103 | 127 |
|
104 | 128 | //в каталоге исходников не создается файл ".git" |
105 | | -Процедура ВКаталогеИсходниковНеСоздаетсяФайл(Знач ПарамСтрока1) Экспорт |
106 | | - ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ВКаталогеИсходниковНеСоздаетсяФайл> не реализован", "Не реализовано."); |
| 129 | +Процедура ВКаталогеИсходниковНеСоздаетсяФайл(Знач ПутьФайла) Экспорт |
| 130 | + ИскомыйФайл = Новый Файл(ОбъединитьПути(КаталогИсходниковИзКонтекстаБДД(), ПутьФайла)); |
| 131 | + Ожидаем.Что(ИскомыйФайл.Существует(), "Файл не должен был существовать").ЭтоЛожь(); |
| 132 | +КонецПроцедуры |
| 133 | + |
| 134 | +Функция ВыполнитьПроцесс(Знач СтрокаВыполнения, ТекстВывода, Знач КодировкаПотока = Неопределено) |
| 135 | + Перем ПаузаОжиданияЧтенияБуфера; |
| 136 | + |
| 137 | + ПаузаОжиданияЧтенияБуфера = 10; |
| 138 | + МаксСчетчикЦикла = 100000; |
| 139 | + |
| 140 | + Если КодировкаПотока = Неопределено Тогда |
| 141 | + КодировкаПотока = КодировкаТекста.UTF8; |
| 142 | + КонецЕсли; |
| 143 | + Лог.Отладка("СтрокаКоманды "+СтрокаВыполнения); |
| 144 | + Процесс = СоздатьПроцесс(СтрокаВыполнения, ТекущийКаталог(), Истина,Истина, КодировкаПотока); |
| 145 | + Процесс.Запустить(); |
| 146 | + |
| 147 | + ТекстВывода = ""; |
| 148 | + Счетчик = 0; |
| 149 | + |
| 150 | + Пока Не Процесс.Завершен Цикл |
| 151 | + Текст = Процесс.ПотокВывода.Прочитать(); |
| 152 | + Лог.Отладка("Цикл ПотокаВывода "+Текст); |
| 153 | + Если Текст = Неопределено ИЛИ ПустаяСтрока(Текст) Тогда |
| 154 | + Прервать; |
| 155 | + КонецЕсли; |
| 156 | + ТекстВывода = ТекстВывода + Текст; |
| 157 | + |
| 158 | + Счетчик = Счетчик + 1; |
| 159 | + Если Счетчик > МаксСчетчикЦикла Тогда |
| 160 | + Прервать; |
| 161 | + КонецЕсли; |
| 162 | + |
| 163 | + sleep(ПаузаОжиданияЧтенияБуфера); |
| 164 | + КонецЦикла; |
| 165 | + |
| 166 | + Процесс.ОжидатьЗавершения(); |
| 167 | + |
| 168 | + Текст = Процесс.ПотокВывода.Прочитать(); |
| 169 | + ТекстВывода = ТекстВывода + Текст; |
| 170 | + Лог.Отладка(ТекстВывода); |
| 171 | + |
| 172 | + Возврат Процесс.КодВозврата; |
| 173 | +КонецФункции |
| 174 | + |
| 175 | +Процедура ВывестиТекст(Знач Строка) |
| 176 | + |
| 177 | + Лог.Информация(""); |
| 178 | + Лог.Информация(" ---------------- ---------------- ---------------- "); |
| 179 | + Лог.Информация( Строка ); |
| 180 | + Лог.Информация(" ---------------- ---------------- ---------------- "); |
| 181 | + Лог.Информация(""); |
| 182 | + |
| 183 | +КонецПроцедуры |
| 184 | + |
| 185 | +Процедура ДобавитьПараметрыГитсинк(Знач НовыйПараметр) Экспорт |
| 186 | + ПараметрыГитсинк = БДД.ПолучитьИзКонтекста("ПараметрыГитсинк"); |
| 187 | + ПараметрыГитсинк = СтрШаблон("%1 %2", ПараметрыГитсинк, НовыйПараметр); |
| 188 | + БДД.СохранитьВКонтекст("ПараметрыГитсинк", ПараметрыГитсинк); |
107 | 189 | КонецПроцедуры |
108 | 190 |
|
109 | 191 | Функция ИнициализироватьТестовоеХранилищеГит(Знач КаталогРепозитория, Знач КакЧистое = Ложь) |
|
115 | 197 |
|
116 | 198 | КонецФункции |
117 | 199 |
|
| 200 | +Функция КаталогИсходниковИзКонтекстаБДД() |
| 201 | + Возврат БДД.ПолучитьИзКонтекста("ПутьКаталогаИсходников").ПолноеИмя; |
| 202 | +КонецФункции // КаталогИсходниковИзКонтекстаБДД() |
| 203 | + |
118 | 204 | Функция ПутьКВременномуФайлуХранилища1С() |
119 | 205 |
|
120 | 206 | Возврат ОбъединитьПути(КаталогFixtures(), "ТестовыйФайлХранилища1С.1CD"); |
121 | 207 |
|
122 | 208 | КонецФункции |
123 | 209 |
|
124 | 210 | Функция КаталогFixtures() |
125 | | - Возврат ОбъединитьПути(ОбъединитьПути(ТекущийСценарий().Каталог, "..", "..", "tests"), "fixtures"); |
| 211 | + Возврат ОбъединитьПути(КаталогГитсинк(), "tests", "fixtures"); |
| 212 | +КонецФункции |
| 213 | + |
| 214 | +Функция КаталогГитсинк() |
| 215 | + Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "..", ".."); |
126 | 216 | КонецФункции |
127 | 217 |
|
128 | 218 | Лог = Логирование.ПолучитьЛог(ИмяЛога()); |
|
0 commit comments