diff --git a/packagedef b/packagedef index e79ed64..f3ebf76 100644 --- a/packagedef +++ b/packagedef @@ -1,7 +1,8 @@  Описание.Имя("asserts") .Версия("1.1.1") + .ВерсияСреды("1.0.21") .ВключитьФайл("src") .ВключитьФайл("tests") .ВключитьФайл("lib.config") - .ВключитьФайл("readme.md") \ No newline at end of file + .ВключитьФайл("readme.md") diff --git a/src/bdd-asserts.os b/src/bdd-asserts.os index 6e689fb..e68ad74 100644 --- a/src/bdd-asserts.os +++ b/src/bdd-asserts.os @@ -299,8 +299,42 @@ КонецФункции Процедура ВызватьОшибкуПроверки(Знач СообщениеОшибки) - Префикс = "["+ СтатусыРезультатаТестирования.ОшибкаПроверки + "]"; - ВызватьИсключение Префикс + " " + СообщениеОшибки; + Префикс = "[" + СтатусыРезультатаТестирования.ОшибкаПроверки + "]"; + ТекстИсключения = Префикс + " " + СообщениеОшибки; + Попытка + ВызватьИсключение ТекстИсключения; + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + СтекВызовов = ИнформацияОбОшибке.ПолучитьСтекВызовов(); + МассивТекстИсключения = Новый Массив; + МассивТекстИсключения.Добавить(ТекстИсключения); + МассивТекстИсключения.Добавить("Стек трейс:"); + + Отступ = ""; + СимволОтступа = " "; + ПервыйКадр = Истина; + Для Каждого КадрСтекаВызовов Из СтекВызовов Цикл + // пропустим первый кадр стека, т.к. он ведет на служебный вызов исключения + Если ПервыйКадр Тогда + ПервыйКадр = Ложь; + Продолжить; + КонецЕсли; + + Отступ = Отступ + СимволОтступа; + + СтрокаСтекТрейса = СтрШаблон( + "%1%2 / Метод %3 / Строка %4", + Отступ, + КадрСтекаВызовов.ИмяМодуля, + КадрСтекаВызовов.Метод, + Формат(КадрСтекаВызовов.НомерСтроки, "ЧГ=") + ); + МассивТекстИсключения.Добавить(СтрокаСтекТрейса); + КонецЦикла; + ТекстИсключения = СтрСоединить(МассивТекстИсключения, Символы.ПС); + + ВызватьИсключение ТекстИсключения; + КонецПопытки КонецПроцедуры Функция ЛогическоеВыражениеВерно(Знач ЛогическоеВыражение)