Skip to content

Commit

Permalink
Merge pull request #11 from autumn-library/bugfix/miltilineStrings
Browse files Browse the repository at this point in the history
Многострочные строковые литералы и исправление тестирования
  • Loading branch information
nixel2007 authored Jan 30, 2025
2 parents 68cf932 + 47eaa31 commit 23cf6ba
Show file tree
Hide file tree
Showing 10 changed files with 127 additions and 158 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
strategy:
fail-fast: false
matrix:
oscript_version: ['1.8.3', 'stable']
oscript_version: ['dev', 'lts-dev', 'default']
uses: autumn-library/workflows/.github/workflows/test.yml@main
with:
oscript_version: ${{ matrix.oscript_version }}
oscript_version: ${{ matrix.oscript_version }}
106 changes: 0 additions & 106 deletions package-loader.os

This file was deleted.

9 changes: 4 additions & 5 deletions packagedef
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,14 @@


Описание.Имя("autumn-cli")
.Версия("1.0.6")
.Версия("1.1.0")
.Автор("nikita ivanchenko")
.АдресАвтора("https://github.com/Nivanchenko")
.Описание("Библиотека для разработки cli приложений на осеннем фреймворке")
.ВерсияСреды("1.8.3")
.ВерсияСреды("1.9.2")
.ВключитьФайл("src")
.ВключитьФайл("package-loader.os")
.ЗависитОт("autumn", "3.3.0")
.ЗависитОт("decorator", "1.5.2")
.ЗависитОт("autumn", "4.3.7")
.ЗависитОт("decorator", "2.0.2")
.ЗависитОт("cli", "0.10.2")
.РазработкаЗависитОт("1bdd")
.РазработкаЗависитОт("1testrunner")
Expand Down
18 changes: 15 additions & 3 deletions src/Классы/ИКС_ДекораторКоманд.os
Original file line number Diff line number Diff line change
Expand Up @@ -125,9 +125,21 @@
Если Аннотация = Неопределено Тогда
Возврат;
КонецЕсли;
ТелоМетода.Добавить(СтрШаблон(Шаблон,
РаботаСАннотациями.ПолучитьЗначениеПараметраАннотации(Аннотация, "Имя"),
РаботаСАннотациями.ПолучитьЗначениеПараметраАннотации(Аннотация, "Описание")));

Имя = РаботаСАннотациями.ПолучитьЗначениеПараметраАннотации(Аннотация, "Имя");
Описание = РаботаСАннотациями.ПолучитьЗначениеПараметраАннотации(Аннотация, "Описание");

Если СтрЧислоСтрок(Описание) > 1 Тогда
Описание = СтрЗаменить(Описание, Символы.ПС, Символы.ПС + "|");
КонецЕсли;

ТелоМетода.Добавить(
СтрШаблон(
Шаблон,
Имя,
Описание
)
);

ДополнитьОписаниеОпции(ТелоМетода, Свойство);
КонецПроцедуры
Expand Down
34 changes: 34 additions & 0 deletions tasks/coverage.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#Использовать coverage
#Использовать 1commands
#Использовать fs

СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;

ФС.ОбеспечитьПустойКаталог(ОбъединитьПути("out", "coverage"));
ПутьКСтат = "out/coverage/stat.json";

Команда = Новый Команда;
Команда.УстановитьКоманду("oscript");
Если НЕ ЭтоWindows Тогда
Команда.ДобавитьПараметр("-encoding=utf-8");
КонецЕсли;
Команда.ДобавитьПараметр(СтрШаблон("-codestat=%1", ПутьКСтат));
Команда.ДобавитьПараметр("tasks/test.os");
Команда.ПоказыватьВыводНемедленно(Истина);

КодВозврата = Команда.Исполнить();

ФайлСтатистики = Новый Файл(ПутьКСтат);

ПроцессорГенерации = Новый ГенераторОтчетаПокрытия();

ПроцессорГенерации.ОтносительныеПути()
.РабочийКаталог("out/coverage")
.КаталогИсходников(ТекущийКаталог())
.ФайлСтатистики(ФайлСтатистики.ПолноеИмя)
.GenericCoverage()
.Cobertura()
.Сформировать();

ЗавершитьРаботу(КодВозврата);
42 changes: 2 additions & 40 deletions tasks/test.os
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#Использовать 1bdd
#Использовать 1testrunner
#Использовать fs

Expand All @@ -20,35 +19,8 @@
Успешно = РезультатТестирования = 0;

Возврат Успешно;
КонецФункции // ПрогнатьТесты()

Функция ПрогнатьФичи()

ПутьОтчетаJUnit = ОбъединитьПути(ТекущийКаталог(), "out", "bdd-log.xml");

КаталогФич = ОбъединитьПути(".", "features");

Файл_КаталогФич = Новый Файл(КаталогФич);

ИсполнительБДД = Новый ИсполнительБДД;
РезультатыВыполнения = ИсполнительБДД.ВыполнитьФичу(Файл_КаталогФич, Файл_КаталогФич);
ИтоговыйРезультатВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);

СтатусВыполнения = ИсполнительБДД.ВозможныеСтатусыВыполнения().НеВыполнялся;
Если РезультатыВыполнения.Строки.Количество() > 0 Тогда

СтатусВыполнения = ИсполнительБДД.ПолучитьИтоговыйСтатусВыполнения(РезультатыВыполнения);

КонецЕсли;

ГенераторОтчетаJUnit = Новый ГенераторОтчетаJUnit;
ГенераторОтчетаJUnit.Сформировать(РезультатыВыполнения, СтатусВыполнения, ПутьОтчетаJUnit);

Сообщить(СтрШаблон("Результат прогона фич <%1>
|", ИтоговыйРезультатВыполнения));

Возврат ИтоговыйРезультатВыполнения <> ИсполнительБДД.ВозможныеСтатусыВыполнения().Сломался;
КонецФункции // ПрогнатьФичи()
КонецФункции // ПрогнатьТесты()

// основной код

Expand All @@ -64,19 +36,9 @@

УстановитьТекущийКаталог(ТекКаталог);

Попытка
ФичиПрошли = ПрогнатьФичи();
Исключение
ФичиПрошли = Ложь;
Сообщить(СтрШаблон("Тесты поведения через 1bdd выполнены неудачно
|%1", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())));
КонецПопытки;

Если Не ТестыПрошли Или Не ФичиПрошли Тогда
Если Не ТестыПрошли Тогда
ВызватьИсключение "Тестирование завершилось неудачно!";
Иначе
Сообщить(СтрШаблон("Результат прогона тестов <%1>
|", ТестыПрошли));
Сообщить(СтрШаблон("Результат прогона основных фич <%1>
|", ФичиПрошли));
КонецЕсли;
29 changes: 28 additions & 1 deletion tests/alltests.os
Original file line number Diff line number Diff line change
Expand Up @@ -488,4 +488,31 @@
Ожидаем.Что(Команда.Результат[0], "проверка аргумента").Равно("dev");
Ожидаем.Что(Команда.Результат[1], "проверка флага").Равно(Истина);

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

&Тест
Процедура КомандаСМногострочнымиОписаниями() Экспорт

// Дано

Поделка = ПолучитьПоделку();
Поделка.ЗапуститьПриложение();

// Когда

Команда = Поделка.НайтиЖелудь("КомандаСМногострочнымиОписаниями");
КонсольноеПриложение = Поделка.НайтиЖелудь("КонсольноеПриложение");

ПараметрыКоманды = Новый Массив();
ПараметрыКоманды.Добавить("multiline");
ПараметрыКоманды.Добавить("-o");
ПараметрыКоманды.Добавить("arg");

КонсольноеПриложение.Запустить(ПараметрыКоманды);

// Тогда

Ожидаем.Что(Команда.Результат[0], "проверка аргумента").Равно("arg");
Ожидаем.Что(Команда.Результат[1], "проверка флага").Равно(Истина);

КонецПроцедуры
2 changes: 1 addition & 1 deletion tests/Классы/ДубЛегасиКоманды.os
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@

&Дуб
Процедура ПриСозданииОбъекета()
Процедура ПриСозданииОбъекта()

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

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
Перем ИспользуемаяВерсия;

&Опция(Имя = "install i", Описание = "Выполнять установку требуемой версии в случае ее отсутствия")
&Флаг
&ПоУмолчанию(Ложь)
&ВОкружении("OVM_USE_INSTALL")
Перем ВыполнятьУстановкуПриНеобходимости;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
&Аргумент(
Имя = "ARG",
Описание =
| аргумент с многострочным
| описанием"
)
&ТСтрока
Перем Аргумент;

&Опция(
Имя = "option o",
Описание =
| опция с многострочным
| описанием"
)
&Флаг
Перем Опция;

Перем Результат Экспорт;

&КомандаПриложения(
Имя = "multiline",
Описание =
| команда с многострочным
| описанием"
)
Процедура ПриСозданииОбъекта()
Результат = Новый Массив();
КонецПроцедуры

&ВыполнениеКоманды
Процедура СформироватьРезультат() Экспорт

Результат.Добавить(Аргумент);
Результат.Добавить(Опция);

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

0 comments on commit 23cf6ba

Please sign in to comment.