Skip to content

Commit 0cebb01

Browse files
committed
Добавил проверку правильности имени файла для Allure - требуется окончание имени на "-testsuite.xml" #676
Исправлена ошибка остановки тестирования при синхронном запуске в случае исключения при генерации отчетов тестирования
1 parent a4367de commit 0cebb01

File tree

14 files changed

+175
-58
lines changed

14 files changed

+175
-58
lines changed

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
#################
1+
#################
22
## Eclipse
33
#################
44

@@ -171,3 +171,4 @@ Gradle/Ant/.gradle/1.11/taskArtifacts/fileSnapshots.bin
171171
Gradle/Ant/.gradle/1.11/taskArtifacts/taskArtifacts.bin
172172
Gradle/gradle-app.setting
173173
лог_тестирования.mxl
174+
allure-report/
302 Bytes
Binary file not shown.

src/Plugins/ГенераторОтчетаAllureXML/Form/Форма/Форма.bsl

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@
3636

3737
ИмяФайла = ПолныйПутьФайла;
3838

39+
ПроверитьИмяФайлаРезультатаAllureСервер(ИмяФайла);
40+
3941
// Запись файла с кодировкой "UTF-8", а не "UTF-8 with BOM"
4042
ЗаписьТекста = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI);
4143
ЗаписьТекста.Закрыть();
@@ -61,6 +63,11 @@
6163

6264

6365
// { Helpers
66+
&НаСервере
67+
Процедура ПроверитьИмяФайлаРезультатаAllureСервер(ИмяФайла) Экспорт
68+
ЭтотОбъектНаСервере().ПроверитьИмяФайлаРезультатаAllure(ИмяФайла);
69+
КонецПроцедуры
70+
6471
&НаСервере
6572
Функция ЭтотОбъектНаСервере()
6673
Возврат РеквизитФормыВЗначение("Объект");

src/Plugins/ГенераторОтчетаAllureXML/ObjectModule.bsl

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,8 @@
157157

158158
ИмяФайла = ПолныйПутьФайла;
159159

160+
ПроверитьИмяФайлаРезультатаAllure(ИмяФайла);
161+
160162
// Исключаем возможность записи в UTF-8 BOM
161163
ЗаписьТекста = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI);
162164
ЗаписьТекста.Закрыть();
@@ -173,6 +175,26 @@
173175
// } Report generator interface
174176

175177
// { Helpers
178+
Процедура ПроверитьИмяФайлаРезультатаAllure(ИмяФайла) Экспорт
179+
Сообщение = "";
180+
Файл = Новый Файл(ИмяФайла);
181+
Если СтрНайти(Файл.Имя, "-testsuite") = 0 Тогда
182+
Сообщение = СтрШаблон("%1
183+
|Файл-результат для Allure должен заканчиваться на ""-testsuite.xml""
184+
|Иначе Allure не покажет результаты тестирования",
185+
Сообщение);
186+
КонецЕсли;
187+
Если Файл.Расширение <> ".xml" Тогда
188+
Сообщение = СтрШаблон("%1
189+
|Файл-результат для Allure должен иметь расширение ""xml""
190+
|Иначе Allure не покажет результаты тестирования",
191+
Сообщение);
192+
КонецЕсли;
193+
Если Не ПустаяСтрока (Сообщение) Тогда
194+
ВызватьИсключение Сообщение;
195+
КонецЕсли;
196+
КонецПроцедуры
197+
176198
Функция УдалитьНедопустимыеСимволыXML(Знач Результат)
177199
Позиция = НайтиНедопустимыеСимволыXML(Результат);
178200
Пока Позиция > 0 Цикл
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 119)
1+
Form\Форма\Форма.bsl-->4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0 (50, 126)
22
Макеты\СхемаAllure.txt-->2d3462c8-c871-442e-81a7-d457064fdf0b.0

src/Plugins/ГенераторОтчетаAllureXML/und/4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@
8585

8686
ИмяФайла = ПолныйПутьФайла;
8787

88+
ПроверитьИмяФайлаРезультатаAllureСервер(ИмяФайла);
89+
8890
// Запись файла с кодировкой ""UTF-8"", а не ""UTF-8 with BOM""
8991
ЗаписьТекста = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI);
9092
ЗаписьТекста.Закрыть();
@@ -110,6 +112,11 @@
110112

111113

112114
// { Helpers
115+
&НаСервере
116+
Процедура ПроверитьИмяФайлаРезультатаAllureСервер(ИмяФайла) Экспорт
117+
ЭтотОбъектНаСервере().ПроверитьИмяФайлаРезультатаAllure(ИмяФайла);
118+
КонецПроцедуры
119+
113120
&НаСервере
114121
Функция ЭтотОбъектНаСервере()
115122
Возврат РеквизитФормыВЗначение(""Объект"");
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{1,11,"",16837005-6a55-48fa-8753-d1010102e534,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",b9e7f5ab-c0e3-4a3f-a3ed-7f07c08548d1,"2d3462c8-c871-442e-81a7-d457064fdf0b",a777db5b-8171-4f65-a213-81d183d088e9,"2d3462c8-c871-442e-81a7-d457064fdf0b.0",2cc75a03-ce85-4589-b2b1-abd5ceb7549e,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",f4d39e50-7912-429c-a80b-b2db45b1494f,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",24ca01a4-f995-4129-9cd4-2498bcd5037c,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",ff463e54-3ff7-45bb-bc47-7ebd2656146c,"copyinfo",26f4785c-5e79-4740-a5c8-319db7491084,"root",30ee5351-452d-4e82-af03-a3cbbd0ca6ac,"version",decba46b-aa9a-4c08-bd55-ca05f044d093,"versions",d072941b-e0ba-44aa-a019-c1be62b30326}
1+
{1,11,"",9674188e-7219-429c-8be0-68bdf2abe61b,"11c5f751-bfaf-480a-92fe-7f30023f2e9a",100617cc-9430-4cc3-8da6-1a2f975a186a,"2d3462c8-c871-442e-81a7-d457064fdf0b",a777db5b-8171-4f65-a213-81d183d088e9,"2d3462c8-c871-442e-81a7-d457064fdf0b.0",2cc75a03-ce85-4589-b2b1-abd5ceb7549e,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4",5a8abf95-16a6-4df0-abf2-7a36e897bd47,"4e8e1a4a-a947-419b-95c8-58a411e3ffa4.0",55ade539-2d0a-4eca-bd44-5c0b76b6e630,"908d0aaf-e4ec-4668-8d14-3e8075d222fd.0",d2e7feee-7cc1-4d13-9038-94462d208825,"copyinfo",e23d07f8-6d87-4067-a7c5-04fa95899f12,"root",464ae681-c32f-4082-8d00-ad97ae605024,"version",afd3d522-faa0-4aaa-9cf3-9a12433c82e7,"versions",f42887eb-ff53-418d-a335-51064b01b0c1}

src/xddTestRunner/Form/УправляемаяФорма/Форма.bsl

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -921,10 +921,12 @@
921921
НастройкиШагов = Новый Структура;
922922
НастройкиШагов.Вставить("Параметры_xddRun");
923923
НастройкиШагов.Вставить("Параметры_xddReport");
924+
НастройкиШагов.Вставить("Параметры_xddExitCodePath");
924925
НастройкиШагов.Вставить("xddShutdown");
925926

926927
ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddRun, НастройкиШагов.Параметры_xddRun);
927928
ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddReport, НастройкиШагов.Параметры_xddReport);
929+
ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddExitCodePath, НастройкиШагов.Параметры_xddExitCodePath);
928930
НастройкиШагов.xddShutdown = ПараметрыЗапуска.Свойство(ПарсерКоманднойСтроки.Объект.ВозможныеКлючи.xddShutdown);
929931

930932
Если СинхронныйРежимРазрешен() Тогда
@@ -948,6 +950,10 @@
948950
СформироватьОтчетОТестированииИЭкспортировать_ПакетныйРежим(ПараметрЗапуска.Параметры_xddReport, РезультатыТестирования);
949951
КонецЕсли;
950952

953+
Если ПараметрЗапуска.Параметры_xddExitCodePath <> Неопределено Тогда
954+
СформироватьФайлКодаВозврата(ПараметрЗапуска.Параметры_xddExitCodePath, РезультатыТестирования);
955+
КонецЕсли;
956+
951957
Если ПараметрЗапуска.xddShutdown = Истина Тогда
952958
//Если ПараметрыЗапуска.Свойство(ВозможныеКлючи.xddShutdown) Тогда
953959
ЗавершитьРаботуСистемы(Ложь);
@@ -1097,7 +1103,7 @@
10971103

10981104
ПараметрыДиспетчера.ИндексОтчета = ПараметрыДиспетчера.ИндексОтчета + 1;
10991105
ОбработчикЭкспорта = Новый ОписаниеОповещения("ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежим", ЭтаФорма, ПараметрыДиспетчера,
1100-
"ВыполнитьШагПакетногоЗапускаИсключение", ЭтаФорма);
1106+
"ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежимИсключение", ЭтаФорма);
11011107
ГенераторОтчета.НачатьЭкспорт(ОбработчикЭкспорта, СтрокаЭкспорта.Отчет, СтрокаЭкспорта.Путь);
11021108
Иначе
11031109
ОбработкаОповещения = ПараметрыДиспетчера.Финализация;
@@ -1107,6 +1113,40 @@
11071113

11081114
КонецПроцедуры
11091115

1116+
&НаКлиенте
1117+
Процедура ДиспетчерЭкспортаОтчетовАсинхронныйПакетныйРежимИсключение(Знач ИнформацияОбОшибке, СтандартнаяОбработка, Знач ПараметрыДиспетчера) Экспорт
1118+
1119+
СтандартнаяОбработка = Ложь;
1120+
1121+
СписокОтчетов = ПараметрыДиспетчера.СписокОтчетов;
1122+
Если СписокОтчетов.Количество() > ПараметрыДиспетчера.ИндексОтчета Тогда
1123+
СтрокаЭкспорта = СписокОтчетов[ПараметрыДиспетчера.ИндексОтчета];
1124+
ГенераторОтчета = СтрокаЭкспорта.генераторОтчета;
1125+
1126+
ТекстОшибки = СтрШаблон("Ошибка при асинхронном режиме генерации отчетов пакетного запуска:
1127+
|Состояние:
1128+
| Генератор отчета: %1
1129+
| Отчет: %2
1130+
| Путь файла: %3
1131+
| Исключение: %4",
1132+
ГенераторОтчета, СтрокаЭкспорта.Отчет, СтрокаЭкспорта.Путь, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
1133+
1134+
Иначе
1135+
ТекстОшибки = СтрШаблон("Ошибка при асинхронном режиме генерации отчетов пакетного запуска:
1136+
|Состояние:
1137+
| Исключение: %1",
1138+
ПодробноеПредставлениеОшибки(ИнформацияОбОшибке));
1139+
1140+
КонецЕсли;
1141+
1142+
ЗафиксироватьОшибкуВЖурналеРегистрации("xUnitFor1C.АсинхронныйПакетныйЗапуск", ТекстОшибки);
1143+
Сообщить(ТекстОшибки, СтатусСообщения.ОченьВажное);
1144+
1145+
ОбработкаОповещения = ПараметрыДиспетчера.Финализация;
1146+
ОбработкаОповещения.ДополнительныеПараметры.СледующийШаг = "ЗавершитьРаботу";
1147+
ВыполнитьОбработкуОповещения(ОбработкаОповещения);
1148+
КонецПроцедуры
1149+
11101150

11111151
&НаКлиенте
11121152
Функция ЗагрузитьИВыполнитьТесты_ПакетныйРежим(Знач Параметры_xddRun)

0 commit comments

Comments
 (0)