#Использовать "../src" #Использовать 1bdd #Использовать 1testrunner #Использовать fs Функция ПрогнатьТесты(КаталогОтчетов) Тестер = Новый Тестер; ПутьКТестам = ОбъединитьПути(ТекущийСценарий().Каталог, "..", "tests"); ПутьКОтчетуJUnit = КаталогОтчетов; КаталогТестов = Новый Файл(ПутьКТестам); Если Не КаталогТестов.Существует() Тогда Сообщить(СтрШаблон("Не найден каталог тестов %1", ПутьКТестам)); Возврат Истина; КонецЕсли; РезультатТестирования = Тестер.ТестироватьКаталог( КаталогТестов, Новый Файл(ПутьКОтчетуJUnit) ); Успешно = РезультатТестирования = 0; Возврат Успешно; КонецФункции // ПрогнатьТесты() Функция ПрогнатьФичи(КаталогОтчетов) ПутьОтчетаJUnit = ОбъединитьПути(КаталогОтчетов, "./bdd-log.xml"); КаталогФич = ОбъединитьПути(".", "features"); Файл_КаталогФич = Новый Файл(КаталогФич); Если Не Файл_КаталогФич.Существует() Тогда Сообщить(СтрШаблон("Не найден каталог фич %1", КаталогФич)); Возврат Истина; КонецЕсли; ИсполнительБДД = Новый ИсполнительБДД; РезультатыВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич); ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения); СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся; Если РезультатыВыполнения.Строки.Количество() > 0 Тогда СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения); КонецЕсли; ГенераторОтчетаJUnit = Новый ГенераторОтчетаJUnit; ГенераторОтчетаJUnit.Сформировать(РезультатыВыполнения, СтатусВыполнения, ПутьОтчетаJUnit); Сообщить(СтрШаблон("Результат прогона фич <%1> |", ИтоговыйРезультатВыполнения)); Возврат ИтоговыйРезультатВыполнения <> ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался; КонецФункции // ПрогнатьФичи() КаталогОтчетов = "reports"; ФС.ОбеспечитьПустойКаталог(КаталогОтчетов); Попытка ТестыПрошли = ПрогнатьТесты(КаталогОтчетов); Исключение ТестыПрошли = Ложь; Сообщить(СтрШаблон("Тесты через 1testrunner выполнены неудачно |%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); КонецПопытки; Попытка ФичиПрошли = ПрогнатьФичи(КаталогОтчетов); Исключение ФичиПрошли = Ложь; Сообщить(СтрШаблон("Тесты поведения через 1bdd выполнены неудачно |%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); КонецПопытки; Если Не ТестыПрошли ИЛИ НЕ ФичиПрошли Тогда ВызватьИсключение "Тестирование завершилось неудачно!"; Иначе Сообщить(СтрШаблон("Результат прогона тестов <%1> |", ТестыПрошли)); КонецЕсли;