|
| 1 | +// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd |
| 2 | + |
| 3 | +Перем БДД; //контекст фреймворка 1bdd |
| 4 | + |
| 5 | +// Метод выдает список шагов, реализованных в данном файле-шагов |
| 6 | +Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт |
| 7 | + БДД = КонтекстФреймворкаBDD; |
| 8 | + |
| 9 | + ВсеШаги = Новый Массив; |
| 10 | + |
| 11 | + ВсеШаги.Добавить("ЯВыполняюСборкуПакетаВКаталогИзПеременной"); |
| 12 | + ВсеШаги.Добавить("ЯСохраняюФайлПакетаИзКаталогаВПеременную"); |
| 13 | + ВсеШаги.Добавить("ЯУстановилРабочийКаталогИзПеременной"); |
| 14 | + |
| 15 | + Возврат ВсеШаги; |
| 16 | +КонецФункции |
| 17 | + |
| 18 | +// Реализация шагов |
| 19 | + |
| 20 | +// Процедура выполняется перед запуском каждого сценария |
| 21 | +Процедура ПередЗапускомСценария(Знач Узел) Экспорт |
| 22 | + |
| 23 | +КонецПроцедуры |
| 24 | + |
| 25 | +// Процедура выполняется после завершения каждого сценария |
| 26 | +Процедура ПослеЗапускаСценария(Знач Узел) Экспорт |
| 27 | + |
| 28 | +КонецПроцедуры |
| 29 | + |
| 30 | + |
| 31 | +//Я выполняю сборку пакета "fixture/testpackage" в каталог из переменной "КаталогСборкиПакета" |
| 32 | +Процедура ЯВыполняюСборкуПакетаВКаталогИзПеременной(Знач ПутьКаталогуПакета, Знач ИмяПеременнойКаталогаСборки) Экспорт |
| 33 | + |
| 34 | + ПутьККаталогуПакета = ОбъединитьПути(ТекущийСценарий().Каталог, ПутьКаталогуПакета); |
| 35 | + |
| 36 | + КаталогСборкиПакета = БДД.ПолучитьИзКонтекста(ИмяПеременнойКаталогаСборки); |
| 37 | + |
| 38 | + СтрокаЗапуска = СтрШаблон("oscript ""%1"" build --out %2 %3", ПутьКИсполняемомуФайлу(), КаталогСборкиПакета, ПутьККаталогуПакета ); |
| 39 | + КодВозврата = ВыполнитьКоманду(СтрокаЗапуска); |
| 40 | + |
| 41 | + Ожидаем.Что(КодВозврата, |
| 42 | + "Ожидали, что сборка пакета (opm build) завершится с кодом возврата 0, а получили другое значение"). |
| 43 | + Равно(0); |
| 44 | + |
| 45 | +КонецПроцедуры |
| 46 | + |
| 47 | + |
| 48 | +//Я установил рабочий каталог из переменной "РабочийКаталог" |
| 49 | +Процедура ЯУстановилРабочийКаталогИзПеременной(Знач ИмяКаталога) Экспорт |
| 50 | + РабочийКаталог = БДД.ПолучитьИзКонтекста(ИмяКаталога); |
| 51 | + |
| 52 | + УстановитьТекущийКаталог(РабочийКаталог); |
| 53 | + |
| 54 | +КонецПроцедуры |
| 55 | + |
| 56 | +//Я сохраняю файл пакета из каталога "КаталогСборкиПакета" в переменную "ИмяФайлаПакета" |
| 57 | +Процедура ЯСохраняюФайлПакетаИзКаталогаВПеременную(Знач ИмяПеременнойКаталога, Знач ИмяПеременнойФайла) Экспорт |
| 58 | + ПутьВременногоКаталога = БДД.ПолучитьИзКонтекста(ИмяПеременнойКаталога); |
| 59 | + МассивФайлов = НайтиФайлы(ПутьВременногоКаталога, "*.ospx", Ложь); |
| 60 | + Ожидаем.Что(МассивФайлов.Количество(), "Должны были найти только 1 собранный пакет, а не несколько").Равно(1); |
| 61 | + ФайлПакета = МассивФайлов[0]; |
| 62 | + БДД.СохранитьВКонтекст(ИмяПеременнойФайла, ФайлПакета.ПолноеИмя); |
| 63 | + |
| 64 | +КонецПроцедуры |
| 65 | + |
| 66 | +Функция ВыполнитьКоманду(Знач СтрокаКоманды, ТекстВывода = "") |
| 67 | + Команда = Новый Команда; |
| 68 | + Команда.ПоказыватьВыводНемедленно(Истина); |
| 69 | + |
| 70 | + Команда.УстановитьСтрокуЗапуска(СтрокаКоманды); |
| 71 | + |
| 72 | + КодВозврата = Команда.Исполнить(); |
| 73 | + ТекстВывода = Команда.ПолучитьВывод(); |
| 74 | + |
| 75 | + Если КодВозврата <> 0 Тогда |
| 76 | + // Лог.Информация(ТекстВывода); |
| 77 | + Сообщить(ТекстВывода); |
| 78 | + КонецЕсли; |
| 79 | + Возврат КодВозврата; |
| 80 | +КонецФункции |
| 81 | + |
| 82 | +Функция ПутьКИсполняемомуФайлу() |
| 83 | + |
| 84 | + Возврат ОбъединитьПути(КаталогБиблиотеки(), "src", "cmd", "opm.os"); |
| 85 | + |
| 86 | +КонецФункции |
| 87 | + |
| 88 | +Функция КаталогFixtures() |
| 89 | + Возврат ОбъединитьПути(КаталогБиблиотеки(), "tests", "fixtures"); |
| 90 | +КонецФункции |
| 91 | + |
| 92 | +Функция КаталогБиблиотеки() |
| 93 | + Возврат ОбъединитьПути(ТекущийСценарий().Каталог, "..", ".."); |
| 94 | +КонецФункции |
0 commit comments