Skip to content

Commit

Permalink
Реализация создания нужных каталогов, в т.ч. и родительских, для ката…
Browse files Browse the repository at this point in the history
…лого Allure и Junit
  • Loading branch information
artbear committed Oct 31, 2019
1 parent 1f0a3ff commit 6a56109
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 1 deletion.
22 changes: 21 additions & 1 deletion features/ПроверкаСинтаксиса.feature
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@
"""
И Файл "junit.xml" содержит 'status="passed"'

Сценарий: Синтаксическая проверка временной файловой базы с указанием имени тестового набора
Сценарий: Синтаксическая проверка временной файловой базы с указанием имени тестового набора для JUnit
# Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner"
Допустим Я очищаю параметры команды "oscript" в контексте

Expand All @@ -144,6 +144,26 @@
И Код возврата команды "oscript" равен 0
# Тогда в лог-файле запуска продукта есть строка 'testsuite name="Синтаксическая проверка конфигурации"'

Сценарий: Синтаксическая проверка временной файловой базы с несуществующего каталога для JUnit
# Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner"
Допустим Я очищаю параметры команды "oscript" в контексте

Когда Я добавляю параметр "<КаталогПроекта>/src/main.os syntax-check" для команды "oscript"
И Я добавляю параметр "--junitpath out/junit.xml" для команды "oscript"
И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript"
И Я добавляю параметр "--testsuitename custom" для команды "oscript"
И Я добавляю параметр "--mode -ThinClient -WebClient -Server -ExternalConnection -ThickClientOrdinaryApplication" для команды "oscript"
Когда Я выполняю команду "oscript"
# И Я сообщаю вывод команды "oscript"
И Код возврата равен 0
И Файл "out/junit.xml" содержит
"""
<testsuite name="CheckConfig.custom">
"""
И Файл "out/junit.xml" содержит 'status="passed"'
И Код возврата команды "oscript" равен 0
# Тогда в лог-файле запуска продукта есть строка 'testsuite name="Синтаксическая проверка конфигурации"'

Сценарий: Синтаксическая проверка базы с ошибками с результатами в формате Allure2 во вложенном каталоге
# Допустим я включаю отладку лога с именем "oscript.app.vanessa-runner"
# Допустим я включаю полную отладку логов пакетов OneScript
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,21 +85,37 @@
ПутьОтчетаВФорматеJUnitxml = ПараметрыКоманды["--junitpath"];
Если ПутьОтчетаВФорматеJUnitxml = Неопределено Тогда
ПутьОтчетаВФорматеJUnitxml = "";
Иначе
СообщениеОшибки = "Генерация отчетов тестирования JUnit невозможна, т.к. не существуют каталоги:";
МассивПутей = Новый Массив;
МассивПутей.Добавить(ПутьОтчетаВФорматеJUnitxml);
ОбщиеМетоды.ОбеспечитьСуществованиеРодительскихКаталоговДляПутей(МассивПутей, СообщениеОшибки);
КонецЕсли;

МассивПутейАллюр = Новый Массив;

ПутьОтчетаВФорматеAllure = ПараметрыКоманды["--allure-results"];
Если ПутьОтчетаВФорматеAllure = Неопределено Тогда
ПутьОтчетаВФорматеAllure = "";
Иначе
МассивПутейАллюр.Добавить(ПутьОтчетаВФорматеAllure);
КонецЕсли;

ПутьОтчетаВФорматеAllure2 = ПараметрыКоманды["--allure-results2"];
Если ПутьОтчетаВФорматеAllure2 = Неопределено Тогда
ПутьОтчетаВФорматеAllure2 = "";
Иначе
МассивПутейАллюр.Добавить(ПутьОтчетаВФорматеAllure2);
КонецЕсли;

СохранятьОтчетВФайл = ЗначениеЗаполнено(ПутьОтчетаВФорматеJUnitxml)
ИЛИ ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure)
ИЛИ ЗначениеЗаполнено(ПутьОтчетаВФорматеAllure2);

Если СохранятьОтчетВФайл И ЗначениеЗаполнено(МассивПутейАллюр) Тогда
СообщениеОшибки = "Генерация отчетов тестирования Allure невозможна, т.к. не существуют каталоги:";
ОбщиеМетоды.ОбеспечитьСуществованиеКаталогов(МассивПутейАллюр, СообщениеОшибки);
КонецЕсли;

ИмяТестовогоНабора = ПараметрыКоманды["--testsuitename"];
Если ИмяТестовогоНабора = Неопределено Тогда
Expand Down
36 changes: 36 additions & 0 deletions src/Модули/ОбщиеМетоды.os
Original file line number Diff line number Diff line change
Expand Up @@ -367,5 +367,41 @@
// Возврат ОбъединитьПути(ОбщиеМетоды.КаталогПроекта(), "..", "add");
КонецФункции

Процедура ОбеспечитьСуществованиеКаталогов(Знач НаборПутей, Знач СообщениеОшибки) Экспорт
ОбеспечитьСуществованиеКаталоговДляПутей(Ложь, НаборПутей, СообщениеОшибки);
КонецПроцедуры

Процедура ОбеспечитьСуществованиеРодительскихКаталоговДляПутей(Знач НаборПутей, Знач СообщениеОшибки) Экспорт
ОбеспечитьСуществованиеКаталоговДляПутей(Истина, НаборПутей, СообщениеОшибки);
КонецПроцедуры

Процедура ОбеспечитьСуществованиеКаталоговДляПутей(Знач ПроверятьРодителя, Знач НаборПутей, Знач СообщениеОшибки)
ЕстьОшибка = Ложь;
Для каждого Путь Из НаборПутей Цикл
Лог.Отладка("Проверяю путь <%1>", Путь);
Файл = Новый Файл(Путь);
Если ПроверятьРодителя Тогда
НужныйПуть = Файл.Путь;
Если ПустаяСтрока(НужныйПуть) Тогда
Возврат;
КонецЕсли;
Иначе
НужныйПуть = Файл.ПолноеИмя;
КонецЕсли;
Лог.Отладка("Определили проверяемый путь <%1>", НужныйПуть);
ОбъектКаталог = Новый Файл(НужныйПуть);

ФС.ОбеспечитьКаталог(ОбъектКаталог.ПолноеИмя);

Если Не ОбъектКаталог.Существует() Тогда
ЕстьОшибка = Истина;
СообщениеОшибки = СтрШаблон("%1 %2", СообщениеОшибки, ОбъектКаталог.ПолноеИмя);
КонецЕсли;
КонецЦикла;
Если ЕстьОшибка Тогда
ВызватьИсключение СообщениеОшибки;
КонецЕсли;
КонецПроцедуры

// из-за особенностей загрузки модуль ОбщиеМетоды грузится раньше ПараметрыСистемы,
//поэтому сразу в конце кода модуля использовать ПараметрыСистемы нельзя

0 comments on commit 6a56109

Please sign in to comment.