Skip to content

Commit

Permalink
Для общих модулей с тестами метод API "Инициализация" сделан необязат…
Browse files Browse the repository at this point in the history
…ельным (#886)

* Для общих модулей с тестами метод API "Инициализация" сделан необязательным

* Исправлено получение представления ошибки

* Представление ошибок приведено в соответствие с клиентскими методами
  • Loading branch information
yukon39 authored Aug 30, 2021
1 parent 3629492 commit 6ba44db
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 19 deletions.
67 changes: 53 additions & 14 deletions epf/xddTestRunner/xddTestRunner/Ext/ObjectModule.bsl
Original file line number Diff line number Diff line change
Expand Up @@ -208,11 +208,11 @@
ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполненияДляКонтейнера, ЭлементДеструктор.ИмяМетода);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
ПодробныйТекстОшибки = ПодробноеПредставлениеОшибки_(ИнформацияОбОшибке);
НовыйДочернийРезультатТестирования.Сообщение = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
НовыйДочернийРезультатТестирования.ПодробноеСообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
НовыйДочернийРезультатТестирования.ПодробноеСообщение = ПодробныйТекстОшибки;

Если ЭтоОшибкаПроверки(ТекстОшибки) Тогда
Если ЭтоОшибкаПроверки(ПодробныйТекстОшибки) Тогда
НовыйДочернийРезультатТестирования.Состояние = СостоянияТестов.Сломан;
Иначе
НовыйДочернийРезультатТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка;
Expand Down Expand Up @@ -270,17 +270,20 @@

РезультатТестирования.Состояние = СостоянияТестов.Пройден;
Исключение

ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);

ПодробныйТекстОшибки = ПодробноеПредставлениеОшибки_(ИнформацияОбОшибке);
КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);

Если ЕстьОшибка_МетодОбъектаНеОбнаружен(КраткийТекстОшибки, ЭлементДереваТестов.ИмяМетода) Тогда
РезультатТестирования.Состояние = СостоянияТестов.НеРеализован;
Сообщение = НСтр("ru = 'Отсутствует реализация тестового метода (%1).'");
РезультатТестирования.Сообщение = СтрЗаменить(Сообщение, "%1", ЭлементДереваТестов.ИмяМетода);
Иначе

РезультатТестирования.Сообщение = КраткийТекстОшибки;
РезультатТестирования.ПодробноеСообщение = ТекстОшибки;
РезультатТестирования.ПодробноеСообщение = ПодробныйТекстОшибки;

Если ЭтоОшибкаПроверки(КраткийТекстОшибки) Тогда
РезультатТестирования.Состояние = СостоянияТестов.Сломан;
Expand All @@ -297,12 +300,13 @@
ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(КонтекстВыполнения, ЭлементДереваТестов.ПослеЗапускаТеста);
Исключение
ИнформацияОбОшибке = ИнформацияОбОшибке();
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
ПодробныйТекстОшибки = ПодробноеПредставлениеОшибки_(ИнформацияОбОшибке);
КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);

РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
РезультатТестирования.Сообщение = КраткийТекстОшибки;
РезультатТестирования.ПодробноеСообщение = ПодробныйТекстОшибки;

Если ЭтоОшибкаПроверки(ТекстОшибки) Тогда
Если ЭтоОшибкаПроверки(КраткийТекстОшибки) Тогда
РезультатТестирования.Состояние = СостоянияТестов.Сломан;
Иначе
РезультатТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка;
Expand All @@ -321,21 +325,44 @@
КонецФункции

Функция ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования)

ИмяПроцедуры = "Инициализация";

ПараметрыИнициализации = Новый Массив();
ПараметрыИнициализации.Добавить(ЭтотОбъект);

Попытка
КонтекстВыполнения.Инициализация(ЭтотОбъект);
Возврат Истина;

ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ИмяПроцедуры, ПараметрыИнициализации);

Исключение
РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке());
РезультатТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка;

ТекстОшибки = ПодробноеПредставлениеОшибки_(ИнформацияОбОшибке());

Если ТипЗнч(КонтекстВыполнения) = Тип("ОбщийМодуль")
И ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, ИмяПроцедуры) Тогда

Возврат Истина;

Иначе

РезультатТестирования.Сообщение = ТекстОшибки;
РезультатТестирования.Состояние = СостоянияТестов.НеизвестнаяОшибка;
Возврат Ложь;

КонецЕсли;

КонецПопытки;
Возврат Ложь;

Возврат Истина;

КонецФункции

Процедура ВыполнитьНеобязательнуюПроцедуруТестовогоСлучая(Знач КонтекстВыполнения, Знач ИмяПроцедуры)
Попытка
ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ИмяПроцедуры);
Исключение
ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке());
ТекстОшибки = ПодробноеПредставлениеОшибки_(ИнформацияОбОшибке());
Если Не ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, ИмяПроцедуры) Тогда
ВызватьИсключение;
КонецЕсли;
Expand Down Expand Up @@ -865,6 +892,18 @@

КонецФункции

Функция ПодробноеПредставлениеОшибки_(ИнформацияОбОшибке)

Если ВыводитьПодробноеПредставлениеОшибки Тогда
ТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
Иначе
ТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);
КонецЕсли;

Возврат ТекстОшибки;

КонецФункции

Функция ДополнитьИдентификаторПрефиксомПодсистемы(Знач Идентификатор) Экспорт

Если НЕ ЗначениеЗаполнено(ИспользуемыйПрефиксПодсистемы) Тогда
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -932,14 +932,37 @@

&НаКлиенте
Функция ВыполнитьИнициализациюКонтекста(КонтекстВыполнения, РезультатТестирования)

ИмяПроцедуры = "Инициализация";

ПараметрыИнициализации = Новый Массив();
ПараметрыИнициализации.Добавить(ЭтотОбъект);

Попытка
КонтекстВыполнения.Инициализация(ЭтаФорма);
Возврат Истина;

ВыполнитьПроцедуруКонтекста(КонтекстВыполнения, ИмяПроцедуры, ПараметрыИнициализации);

Исключение
РезультатТестирования.Сообщение = ПодробноеПредставлениеОшибки_(ИнформацияОбОшибке());
РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка;

ТекстОшибки = ПодробноеПредставлениеОшибки_(ИнформацияОбОшибке());

Если ТипЗнч(КонтекстВыполнения) = Тип("ОбщийМодуль")
И ЕстьОшибка_МетодОбъектаНеОбнаружен(ТекстОшибки, ИмяПроцедуры) Тогда

Возврат Истина;

Иначе

РезультатТестирования.Сообщение = ТекстОшибки;
РезультатТестирования.Состояние = Объект.СостоянияТестов.НеизвестнаяОшибка;
Возврат Ложь;

КонецЕсли;

КонецПопытки;
Возврат Ложь;

Возврат Истина;

КонецФункции

&НаКлиенте
Expand Down

0 comments on commit 6ba44db

Please sign in to comment.