forked from vanessa-opensource/vanessa-runner
-
Notifications
You must be signed in to change notification settings - Fork 0
/
test.os
84 lines (64 loc) · 4.26 KB
/
test.os
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// BSLLS-off
#Использовать 1bdd
#Использовать fs
#Использовать 1testrunner
Перем ПутьКПапкеОтчетовJunit;
Функция ПрогнатьЮнитТесты()
Тестер = Новый Тестер;
Тестер.УстановитьФорматЛогФайла(Тестер.ФорматыЛогФайла().JUnit);
ПутьКТестам = ОбъединитьПути(".", "tests", "xunits");
РезультатТестирования = Тестер.ТестироватьКаталог(
Новый Файл(ПутьКТестам),
Новый Файл(ПутьКПапкеОтчетовJunit)
);
Успешно = РезультатТестирования = 0;
Возврат Успешно;
КонецФункции // ПрогнатьТесты()
Функция ПрогнатьБддТесты()
ИсполнительБДД = Новый ИсполнительБДД;
КаталогФич = ОбъединитьПути(".", "features");
Файл_КаталогФич = Новый Файл(КаталогФич);
ПутьОтчетаJUnit = ОбъединитьПути(ПутьКПапкеОтчетовJunit, "bdd-exec.xml");
// Расчет покрытия, если нужен
Для каждого Элемент Из АргументыКоманднойСтроки Цикл
Если Элемент = "coverage" Тогда
Сообщить("Начат сбор статистики выполнения bdd-тестов");
ИсполнительБДД.СохранитьВКонтекст("ПризнакСтатистикиСкриптовOnescript", Новый Файл(ОбъединитьПути(ТекущийКаталог(), "coverage")));
Прервать;
КонецЕсли;
КонецЦикла;
РезультатВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич);
ИтоговыйСтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатВыполнения);
ГенераторОтчетаJUnit = Новый ГенераторОтчетаJUnit;
ГенераторОтчетаJUnit.Сформировать(РезультатВыполнения, ИтоговыйСтатусВыполнения, ПутьОтчетаJUnit);
Успешно = ИтоговыйСтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().Пройден;
Возврат Успешно;
КонецФункции
// основной код
// для Github-actions нужно очищать переменную среды RUNNER_WORKSPACE т.к. она там используется.
УстановитьПеременнуюСреды("RUNNER_WORKSPACE", "");
ТекКаталог = ТекущийКаталог();
ПутьКПапкеОтчетовJunit = ОбъединитьПути(".", "build", "reports");
ФС.ОбеспечитьПустойКаталог(ПутьКПапкеОтчетовJunit);
Попытка
ТестыПрошли = ПрогнатьЮнитТесты();
Исключение
ТестыПрошли = Ложь;
Сообщить(СтрШаблон("Тесты через 1testrunner выполнены неудачно
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;
УстановитьТекущийКаталог(ТекКаталог);
Попытка
ТестыПрошли = ПрогнатьБддТесты();
Исключение
ТестыПрошли = Ложь;
Сообщить(СтрШаблон("Тесты через 1bdd выполнены неудачно
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;
УстановитьТекущийКаталог(ТекКаталог);
Если Не ТестыПрошли Тогда
ВызватьИсключение "Тестирование завершилось неудачно!";
Иначе
Сообщить(СтрШаблон("Результат прогона тестов <%1>
|", ТестыПрошли));
КонецЕсли;