Skip to content

Commit 1f0891a

Browse files
authored
Merge pull request #3 from sfaqer/feature/brokenSuites
feat: Обработка ошибок при подключении тестовых наборов и добавление сломанного набора
2 parents 07f9464 + cb83a34 commit 1f0891a

File tree

4 files changed

+75
-13
lines changed

4 files changed

+75
-13
lines changed

src/core/internal/Классы/ЗаготовкаТестирование.os

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#Использовать collectionos
2+
#Использовать decorator
23
#Использовать "../../../shared"
34

45
Перем _КаталогиТестов;
@@ -25,11 +26,19 @@
2526
Путь = Тест.ПолноеИмя;
2627
ТестовыйНабор = "oneunit_testcase_" + Тест.ИмяБезРасширения;
2728

29+
ДобавитьЗавязь = Ложь;
30+
2831
Попытка
32+
2933
ПодключитьСценарий(Путь, ТестовыйНабор);
34+
35+
Если Не ЕстьКонструктор(Путь) Тогда
36+
ДобавитьЗавязь = Истина;
37+
КонецЕсли;
38+
3039
Исключение
3140

32-
ВызватьИсключение Новый ИнформацияОбОшибке(
41+
Ошибка = Новый ИнформацияОбОшибке(
3342
СтрШаблон(
3443
"Ошибка подключения тестового набора %1
3544
|%2",
@@ -39,9 +48,21 @@
3948
ИнформацияОбОшибке()
4049
);
4150

51+
ПостроительДекоратора = Новый ПостроительДекоратора()
52+
.Поле(Новый Поле("Ошибка").ЗначениеПоУмолчанию(Ошибка))
53+
.Метод(Новый Метод("ПередВсеми")
54+
.Аннотация(Новый Аннотация("ПередВсеми"))
55+
.ТелоМетода("ВызватьИсключение Ошибка;")
56+
.Публичный()
57+
.ЭтоПроцедура());
58+
59+
ПостроительДекоратора.ЗарегистрироватьВСистемеТипов(ТестовыйНабор);
60+
61+
ДобавитьЗавязь = Истина;
62+
4263
КонецПопытки;
4364

44-
Если Не ЕстьКонструктор(Путь) Тогда
65+
Если ДобавитьЗавязь Тогда
4566

4667
Поделка.ДобавитьЗавязь(СтрШаблон(
4768
"&ТестовыйНабор &Завязь(""%1"", Тип = ""%1"") () ->

src/core/internal/Классы/РепортерJUnit.os

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,22 @@
114114

115115
ЗаписьXML.ЗаписатьАтрибут("file", ТестНабор.Путь());
116116

117-
Вывод = "";
117+
Вывод = "";
118+
Причины = "";
118119

119120
Если ЗавершенныеНаборы.СодержитКлюч(ТестНабор) Тогда
120-
Вывод = ЗавершенныеНаборы.Получить(ТестНабор).Получить().Вывод();
121+
122+
Результат = ЗавершенныеНаборы.Получить(ТестНабор).Получить();
123+
124+
Вывод = Результат.Вывод();
125+
126+
Причины = Результат.Причины()
127+
.ПроцессорКоллекции()
128+
// Пропустим первый стек вызовов, так как он содержит информацию о вызове теста
129+
.Обработать("Причина -> ?(ЗначениеЗаполнено(Причина.Причина), Причина.Причина, Причина)")
130+
.Обработать("Причина -> ТестированиеСлужебный.ПодробноеОписаниеОшибки(""Причина"", Причина)")
131+
.ВСтроку(Символы.ПС);
132+
121133
КонецЕсли;
122134

123135
ЗаписьXML.ЗаписатьНачалоЭлемента("properties");
@@ -149,7 +161,15 @@
149161
КонецЕсли;
150162

151163
ЗаписьXML.ЗаписатьКонецЭлемента();
164+
152165
ЗаписьXML.ЗаписатьНачалоЭлемента("system-err");
166+
167+
Если Не ПустаяСтрока(Причины) Тогда
168+
ЗаписьXML.ЗаписатьТекст(Символы.ПС);
169+
ЗаписьXML.ЗаписатьСекциюCDATA(Причины);
170+
ЗаписьXML.ЗаписатьТекст(Символы.ПС);
171+
КонецЕсли;
172+
153173
ЗаписьXML.ЗаписатьКонецЭлемента();
154174

155175
// TODO: Выводить ли детей если пропущен?
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
fadwa,dlwmal'

tests/Обнаружитель.os

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616

1717
// Тогда
1818

19-
Ожидаем.Что(ТестПлан.Дети().Количество()).Равно(9);
19+
Ожидаем.Что(ТестПлан.Дети().Количество()).Равно(10);
2020

2121
#Область НаборБезКонструктора
2222

@@ -53,10 +53,30 @@
5353

5454
#КонецОбласти
5555

56-
#Область НаборВыключенный
56+
#Область СломанныйНабор
5757

5858
ИндексНабора = 1;
5959

60+
ПроверитьТестНабор(
61+
ТестПлан.Дети().Получить(ИндексНабора),
62+
"СломанныйНабор",
63+
Списки.ИзЭлементов(),
64+
0,
65+
0,
66+
Карты.ИзЭлементов(
67+
"ПередВсеми", Списки.ИзЭлементов("ПередВсеми"),
68+
"ПередКаждым", Списки.ИзЭлементов(),
69+
"ПослеВсех", Списки.ИзЭлементов(),
70+
"ПослеКаждого", Списки.ИзЭлементов()
71+
)
72+
);
73+
74+
#КонецОбласти
75+
76+
#Область НаборВыключенный
77+
78+
ИндексНабора = 2;
79+
6080
ПроверитьТестНабор(
6181
ТестПлан.Дети().Получить(ИндексНабора),
6282
"НаборВыключенный",
@@ -90,7 +110,7 @@
90110

91111
#Область НаборКомпанейский
92112

93-
ИндексНабора = 2;
113+
ИндексНабора = 3;
94114

95115
ПроверитьТестНабор(
96116
ТестПлан.Дети().Получить(ИндексНабора),
@@ -138,7 +158,7 @@
138158

139159
#Область НаборОдиночка
140160

141-
ИндексНабора = 3;
161+
ИндексНабора = 4;
142162

143163
ПроверитьТестНабор(
144164
ТестПлан.Дети().Получить(ИндексНабора),
@@ -187,7 +207,7 @@
187207

188208
#Область НаборПадающий
189209

190-
ИндексНабора = 4;
210+
ИндексНабора = 5;
191211

192212
ПроверитьТестНабор(
193213
ТестПлан.Дети().Получить(ИндексНабора),
@@ -248,7 +268,7 @@
248268

249269
#Область НаборСВыключеннымиТестами
250270

251-
ИндексНабора = 5;
271+
ИндексНабора = 6;
252272

253273
ПроверитьТестНабор(
254274
ТестПлан.Дети().Получить(ИндексНабора),
@@ -439,7 +459,7 @@
439459

440460
#Область ПараметризованныйТест
441461

442-
ИндексНабора = 6;
462+
ИндексНабора = 7;
443463

444464
ПроверитьТестНабор(
445465
ТестПлан.Дети().Получить(ИндексНабора),
@@ -870,7 +890,7 @@
870890

871891
#Область ПовторяемыйТест
872892

873-
ИндексНабора = 7;
893+
ИндексНабора = 8;
874894

875895
ПроверитьТестНабор(
876896
ТестПлан.Дети().Получить(ИндексНабора),
@@ -1064,7 +1084,7 @@
10641084

10651085
#Область Тест
10661086

1067-
ИндексНабора = 8;
1087+
ИндексНабора = 9;
10681088

10691089
ПроверитьТестНабор(
10701090
ТестПлан.Дети().Получить(ИндексНабора),

0 commit comments

Comments
 (0)