|
| 1 | +// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd |
| 2 | +#Использовать asserts |
| 3 | +#Использовать tempfiles |
| 4 | + |
| 5 | +Перем БДД; //контекст фреймворка 1bdd |
| 6 | + |
| 7 | +Перем Лог; |
| 8 | + |
| 9 | +// Метод выдает список шагов, реализованных в данном файле-шагов |
| 10 | +Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт |
| 11 | + БДД = КонтекстФреймворкаBDD; |
| 12 | + |
| 13 | + ВсеШаги = Новый Массив; |
| 14 | + |
| 15 | + ВсеШаги.Добавить("ЯПодготовилТестовыйКаталог"); |
| 16 | + ВсеШаги.Добавить("ЯУстановилТестовыйКаталогКакТекущий"); |
| 17 | + ВсеШаги.Добавить("ЯПодключилКаталогТестовогоХранилищаКонфигурации"); |
| 18 | + ВсеШаги.Добавить("ЯСоздалКаталогGit_Репозитория"); |
| 19 | + ВсеШаги.Добавить("УстановилКаталогКакТекущий"); |
| 20 | + ВсеШаги.Добавить("ЯСоздалКаталогИсходников"); |
| 21 | + ВсеШаги.Добавить("ЯПередаюПутьТестовогоКаталогаХранилищаКонфигурацииДляЗапускаGitsync"); |
| 22 | + ВсеШаги.Добавить("ЯПередаюПутьКаталогаИсходниковДляЗапускаGitsync"); |
| 23 | + ВсеШаги.Добавить("ЯВыполняюКомандуGitsync"); |
| 24 | + ВсеШаги.Добавить("ВКаталогеИсходниковСоздаетсяФайл"); |
| 25 | + ВсеШаги.Добавить("ВКаталогеИсходниковНеСоздаетсяФайл"); |
| 26 | + |
| 27 | + Возврат ВсеШаги; |
| 28 | +КонецФункции |
| 29 | + |
| 30 | +// Реализация шагов |
| 31 | + |
| 32 | +// Процедура выполняется перед запуском каждого сценария |
| 33 | +Процедура ПередЗапускомСценария(Знач Узел) Экспорт |
| 34 | + |
| 35 | +КонецПроцедуры |
| 36 | + |
| 37 | +// Процедура выполняется после завершения каждого сценария |
| 38 | +Процедура ПослеЗапускаСценария(Знач Узел) Экспорт |
| 39 | + |
| 40 | +КонецПроцедуры |
| 41 | + |
| 42 | +Функция ИмяЛога() Экспорт |
| 43 | + Возврат "bdd.gitsync.feature"; |
| 44 | +КонецФункции |
| 45 | + |
| 46 | +//я подготовил тестовый каталог |
| 47 | +Процедура ЯПодготовилТестовыйКаталог() Экспорт |
| 48 | + ВременныйКаталог = Новый Файл(ВременныеФайлы.СоздатьКаталог()); |
| 49 | + Лог.Отладка("Использую временный каталог "+ВременныйКаталог.ПолноеИмя); |
| 50 | + |
| 51 | + БДД.СохранитьВКонтекст("ВременныйКаталог", ВременныйКаталог); |
| 52 | +КонецПроцедуры |
| 53 | + |
| 54 | +//я установил тестовый каталог как текущий |
| 55 | +Процедура ЯУстановилТестовыйКаталогКакТекущий() Экспорт |
| 56 | + ВременныйКаталог = БДД.ПолучитьИзКонтекста("ВременныйКаталог"); |
| 57 | + Лог.Отладка(СтрШаблон("ВременныйКаталог <%1>", ВременныйКаталог.ПолноеИмя)); |
| 58 | + УстановитьТекущийКаталог(ВременныйКаталог.ПолноеИмя); |
| 59 | +КонецПроцедуры |
| 60 | + |
| 61 | +//я подключил каталог тестового хранилища конфигурации |
| 62 | +Процедура ЯПодключилКаталогТестовогоХранилищаКонфигурации() Экспорт |
| 63 | + БДД.СохранитьВКонтекст("ПутьКФайлуХранилища1С", ПутьКВременномуФайлуХранилища1С()); |
| 64 | +КонецПроцедуры |
| 65 | + |
| 66 | +//я создал каталог git-репозитория "git-repo" |
| 67 | +Процедура ЯСоздалКаталогGit_Репозитория(Знач ПутьГитРепозитория) Экспорт |
| 68 | + ПутьГитРепозитория = ОбъединитьПути(ТекущийКаталог(), ПутьГитРепозитория); |
| 69 | + Лог.Отладка(СтрШаблон("ПутьГитРепозитория <%1>", ПутьГитРепозитория)); |
| 70 | + КодВозврата = ИнициализироватьТестовоеХранилищеГит(ПутьГитРепозитория); |
| 71 | + Ожидаем.Что(КодВозврата, "неверно выполнена команда git init").Равно(0); |
| 72 | +КонецПроцедуры |
| 73 | + |
| 74 | +//установил каталог "git-repo" как текущий |
| 75 | +Процедура УстановилКаталогКакТекущий(Знач ПутьКаталога) Экспорт |
| 76 | + УстановитьТекущийКаталог(ОбъединитьПути(ТекущийКаталог(), ПутьКаталога)); |
| 77 | +КонецПроцедуры |
| 78 | + |
| 79 | +//я создал каталог исходников |
| 80 | +Процедура ЯСоздалКаталогИсходников() Экспорт |
| 81 | + ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯСоздалКаталогИсходников> не реализован", "Не реализовано."); |
| 82 | +КонецПроцедуры |
| 83 | + |
| 84 | +//я передаю путь тестового каталога хранилища конфигурации для запуска gitsync |
| 85 | +Процедура ЯПередаюПутьТестовогоКаталогаХранилищаКонфигурацииДляЗапускаGitsync() Экспорт |
| 86 | + ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯПередаюПутьТестовогоКаталогаХранилищаКонфигурацииДляЗапускаGitsync> не реализован", "Не реализовано."); |
| 87 | +КонецПроцедуры |
| 88 | + |
| 89 | +//я передаю путь каталога исходников для запуска gitsync |
| 90 | +Процедура ЯПередаюПутьКаталогаИсходниковДляЗапускаGitsync() Экспорт |
| 91 | + ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯПередаюПутьКаталогаИсходниковДляЗапускаGitsync> не реализован", "Не реализовано."); |
| 92 | +КонецПроцедуры |
| 93 | + |
| 94 | +//я выполняю команду gitsync "init" |
| 95 | +Процедура ЯВыполняюКомандуGitsync(Знач ПарамСтрока1) Экспорт |
| 96 | + ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ЯВыполняюКомандуGitsync> не реализован", "Не реализовано."); |
| 97 | +КонецПроцедуры |
| 98 | + |
| 99 | +//в каталоге исходников создается файл "AUTHORS" |
| 100 | +Процедура ВКаталогеИсходниковСоздаетсяФайл(Знач ПарамСтрока1) Экспорт |
| 101 | + ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ВКаталогеИсходниковСоздаетсяФайл> не реализован", "Не реализовано."); |
| 102 | +КонецПроцедуры |
| 103 | + |
| 104 | +//в каталоге исходников не создается файл ".git" |
| 105 | +Процедура ВКаталогеИсходниковНеСоздаетсяФайл(Знач ПарамСтрока1) Экспорт |
| 106 | + ВызватьИсключение Новый ИнформацияОбОшибке("Шаг <ВКаталогеИсходниковНеСоздаетсяФайл> не реализован", "Не реализовано."); |
| 107 | +КонецПроцедуры |
| 108 | + |
| 109 | +Функция ИнициализироватьТестовоеХранилищеГит(Знач КаталогРепозитория, Знач КакЧистое = Ложь) |
| 110 | + |
| 111 | + КодВозврата = Неопределено; |
| 112 | + ЗапуститьПриложение("git init" + ?(КакЧистое, " --bare", ""), КаталогРепозитория, Истина, КодВозврата); |
| 113 | + |
| 114 | + Возврат КодВозврата; |
| 115 | + |
| 116 | +КонецФункции |
| 117 | + |
| 118 | +Функция ПутьКВременномуФайлуХранилища1С() |
| 119 | + |
| 120 | + Возврат ОбъединитьПути(КаталогFixtures(), "ТестовыйФайлХранилища1С.1CD"); |
| 121 | + |
| 122 | +КонецФункции |
| 123 | + |
| 124 | +Функция КаталогFixtures() |
| 125 | + Возврат ОбъединитьПути(ОбъединитьПути(ТекущийСценарий().Каталог, "..", "..", "tests"), "fixtures"); |
| 126 | +КонецФункции |
| 127 | + |
| 128 | +Лог = Логирование.ПолучитьЛог(ИмяЛога()); |
| 129 | +//Лог.УстановитьУровень(Логирование.ПолучитьЛог("bdd").Уровень()); |
| 130 | +Лог.УстановитьУровень(УровниЛога.Отладка); |
0 commit comments