diff --git a/features/КомандаВыполнениеСценариев.feature b/features/КомандаВыполнениеСценариев.feature new file mode 100644 index 0000000..d97084c --- /dev/null +++ b/features/КомандаВыполнениеСценариев.feature @@ -0,0 +1,61 @@ +# language: ru + +Функциональность: Выполнение прекоммита + +Как разработчик +Я хочу быть уверенным, что precommit4onec корректно обрабатывает выполнение сценариев для каталога + +Контекст: + Допустим Я очищаю параметры команды "oscript" в контексте + И я очищаю параметры команды "git" в контексте + И Я устанавливаю кодировку вывода "utf-8" команды "git" + И я включаю отладку лога с именем "oscript.app.precommit4onec" + И я создаю временный каталог и запоминаю его как "КаталогРепозиториев" + И я переключаюсь во временный каталог "КаталогРепозиториев" + И я создаю новый репозиторий "rep1" в каталоге "КаталогРепозиториев" и запоминаю его как "РабочийКаталог" + И я установил рабочий каталог как текущий каталог + +Сценарий: Разбор отчетов, обработок, конфигурации на исходники. + Когда Я копирую файл "tests/fixtures/demo/DemoОбработка.epf" в каталог репозитория "РабочийКаталог" + И я копирую файл "tests/fixtures/demo/DemoОтчет.erf" в каталог репозитория "РабочийКаталог" + И я копирую файл "tests/fixtures/demo/DemoРасширение.cfe" в каталог репозитория "РабочийКаталог" + И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ." + Тогда В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ\Ext\Form\Module.bsl" + И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ\Ext\Form\form" + И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Templates\ОсновнаяСхемаКомпоновкиДанных.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Templates\ОсновнаяСхемаКомпоновкиДанных\Ext\Template.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяОФ\Ext\Form.bin" + И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяУФ.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "erf\DemoОтчет\DemoОтчет\Forms\ОсновнаяУФ\Ext\Form.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form.bin" + И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяУФ.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяУФ\Ext\Form.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form\Module.bsl" + И В каталоге "." репозитория "РабочийКаталог" есть файл "epf\DemoОбработка\DemoОбработка\Forms\ОсновнаяОФ\Ext\Form\form" + И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\ConfigDumpInfo.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\Configuration.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\CommonModules\DemoРасш_Demo.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\CommonModules\DemoРасш_Demo\Ext\Module.bsl" + И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\Subsystems\DemoРасш_Demo.xml" + И В каталоге "." репозитория "РабочийКаталог" есть файл "cfe\DemoРасширение\Languages\Русский.xml" + +Сценарий: Успешный коммит в репозиторий + Когда Я копирую файл "tests\fixtures\ПроверкаДублейПроцедурПоложительныйТест.bsl" в каталог репозитория "РабочийКаталог" + И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ." + Тогда Вывод команды "oscript" не содержит "обнаружены неуникальные имена методов" + +Сценарий: Прекоммит вывел ошибку о неуникальных именах + Когда Я копирую файл "tests\fixtures\ПроверкаДублейПроцедурНегативныйТест.bsl" в каталог репозитория "РабочийКаталог" + И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ." + Тогда Вывод команды "oscript" содержит "обнаружены неуникальные имена методов" + +Сценарий: Прекоммит использует локальные настройки репозитория вместо глобальных + Когда Я копирую каталог "localscenario" из каталога "tests\fixtures" проекта в рабочий каталог + И Я копирую файл "v8config.json" из каталога "tests\fixtures" проекта в рабочий каталог + И я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os exec-rules <РабочийКаталог> -source-dir ." + И Я сообщаю вывод команды "oscript" + Тогда Вывод команды "oscript" содержит "Используем локальные настройки" \ No newline at end of file diff --git a/src/Классы/КомандаВыполнитьСценарии.os b/src/Классы/КомандаВыполнитьСценарии.os index 19898af..1ec3aa5 100644 --- a/src/Классы/КомандаВыполнитьСценарии.os +++ b/src/Классы/КомандаВыполнитьСценарии.os @@ -65,7 +65,7 @@ ФайлТекущийКаталогИсходныхФайлов = Новый Файл(ТекущийКаталогИсходныхФайлов); ТекущийКаталогИсходныхФайлов = ФайлТекущийКаталогИсходныхФайлов.ПолноеИмя; Если НЕ ФайлТекущийКаталогИсходныхФайлов.Существует() Тогда - + Лог.Ошибка("Каталога <%1> не существует", ТекущийКаталогИсходныхФайлов); КонецЕсли; @@ -129,7 +129,9 @@ Для Каждого ФайлДляДопОбработки Из ПараметрыОбработки.ФайлыДляПостОбработки Цикл - ОбрабатываемыеФайлы.Добавить(ФайлДляДопОбработки); + ДобавляемыйФайл = ?(ТипЗнч(ФайлДляДопОбработки) = Тип("Строка"), Новый Файл(ФайлДляДопОбработки), ФайлДляДопОбработки); + + ОбрабатываемыеФайлы.Добавить(ДобавляемыйФайл); КонецЦикла;