diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index f4af2e1..014c8d1 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -7,10 +7,13 @@ on: jobs: test: + permissions: + checks: write + pull-requests: write strategy: fail-fast: false matrix: oscript_version: ['dev', 'lts-dev', 'default'] - uses: autumn-library/workflows/.github/workflows/test.yml@main + uses: autumn-library/workflows/.github/workflows/test.yml@junit-decoration with: oscript_version: ${{ matrix.oscript_version }} diff --git a/tasks/test.os b/tasks/test.os index 9dedb65..e935c2a 100644 --- a/tasks/test.os +++ b/tasks/test.os @@ -3,44 +3,52 @@ #Использовать 1commands Функция ПрогнатьТесты() - + + ИмяФорматаЛогФайла = "JUnit"; + Если АргументыКоманднойСтроки.Количество() > 0 Тогда + ИмяФорматаЛогФайла = АргументыКоманднойСтроки[0]; + КонецЕсли; + Тестер = Новый Тестер; - Тестер.УстановитьФорматЛогФайла(Тестер.ФорматыЛогФайла().GenericExec); + ФорматЛогФайла = Тестер.ФорматыЛогФайла()[ИмяФорматаЛогФайла]; + Тестер.УстановитьФорматЛогФайла(ФорматЛогФайла); + ПутьКТестам = "tests"; - ПутьКОтчетуJUnit = "out"; - + ПутьКОтчетуJUnit = ОбъединитьПути("out", ИмяФорматаЛогФайла); + ФС.ОбеспечитьПустойКаталог(ПутьКОтчетуJUnit); - + РезультатТестирования = Тестер.ТестироватьКаталог( Новый Файл(ПутьКТестам), Новый Файл(ПутьКОтчетуJUnit) ); - + ИзолированныеТесты = НайтиФайлы(ОбъединитьПути("tests", "ИзолированныеТесты"), "*.os"); - + Для Каждого Тест Из ИзолированныеТесты Цикл - + Команда = Новый Команда; - + Команда.ПоказыватьВыводНемедленно(Истина); - + Команда.УстановитьИсполнениеЧерезКомандыСистемы(Ложь); - + Команда.УстановитьКоманду("oscript"); Команда.ДобавитьПараметр(ОбъединитьПути("tasks", "testIsolated.os")); Команда.ДобавитьПараметр(Тест.ПолноеИмя); - + Команда.ДобавитьПараметр(ИмяФорматаЛогФайла); + КодВозврата = Команда.Исполнить(); - + РезультатТестирования = Макс(РезультатТестирования, КодВозврата); - + КонецЦикла; - + Успешно = РезультатТестирования = 0; - + Возврат Успешно; - + КонецФункции // ПрогнатьТесты() // основной код @@ -52,14 +60,14 @@ Исключение ТестыПрошли = Ложь; Сообщить(СтрШаблон("Тесты через 1testrunner выполнены неудачно - |%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); + |%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()))); КонецПопытки; УстановитьТекущийКаталог(ТекКаталог); -Если Не ТестыПрошли Тогда +Если НЕ ТестыПрошли Тогда ВызватьИсключение "Тестирование завершилось неудачно!"; Иначе Сообщить(СтрШаблон("Результат прогона тестов <%1> - |", ТестыПрошли)); -КонецЕсли; + |", ТестыПрошли)); +КонецЕсли; \ No newline at end of file diff --git a/tasks/testIsolated.os b/tasks/testIsolated.os index 52c6225..9f7d75a 100644 --- a/tasks/testIsolated.os +++ b/tasks/testIsolated.os @@ -1,9 +1,16 @@ #Использовать 1testrunner +ИмяФорматаЛогФайла = "JUnit"; +Если АргументыКоманднойСтроки.Количество() > 1 Тогда + ИмяФорматаЛогФайла = АргументыКоманднойСтроки[1]; +КонецЕсли; + Тестер = Новый Тестер; -Тестер.УстановитьФорматЛогФайла(Тестер.ФорматыЛогФайла().GenericExec); -ПутьКОтчетуJUnit = "out"; +ФорматЛогФайла = Тестер.ФорматыЛогФайла()[ИмяФорматаЛогФайла]; +Тестер.УстановитьФорматЛогФайла(ФорматЛогФайла); + +ПутьКОтчетуJUnit = ОбъединитьПути("out", ИмяФорматаЛогФайла); РезультатТестирования = Тестер.ТестироватьФайл( Новый Файл(АргументыКоманднойСтроки[0]),