From d4ec54b10e9b4142e6c8697db04f2e3144c06938 Mon Sep 17 00:00:00 2001 From: Egor Ivanov Date: Wed, 4 Dec 2024 17:18:15 +0300 Subject: [PATCH] =?UTF-8?q?[FEAT]=20=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC=D0=B5=D1=82=D1=80?= =?UTF-8?q?=20ibsrv=20=D0=B4=D0=BB=D1=8F=20=D0=B7=D0=B0=D0=BF=D1=83=D1=81?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BA=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=20=D1=81=20?= =?UTF-8?q?=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B0=D0=B2=D1=82=D0=BE=D0=BD=D0=BE=D0=BC?= =?UTF-8?q?=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packagedef | 2 +- ...20\270\321\217\321\202\320\270\321\217.os" | 73 ++++- ...21\200\320\260\321\202\320\276\321\200.os" | 31 +- ...20\266\320\265\320\275\320\270\321\217.os" | 16 +- ...20\266\320\265\320\275\320\270\321\217.os" | 22 +- ...21\200\320\265\320\275\320\270\320\271.os" | 2 +- ...21\202\320\260\320\262\320\272\320\270.os" | 34 ++- ...260\320\275\320\270\320\265_xUnitFor1C.os" | 39 ++- ...20\264\320\265\320\275\320\270\321\217.os" | 40 ++- ...5\320\264\320\266\320\265\321\200Ibcmd.os" | 93 +++++- ...5\320\264\320\266\320\265\321\200Ibsrv.os" | 274 ++++++++++++++++++ ...20\260\321\202\320\276\321\200\320\260.os" | 36 ++- ...20\266\320\265\320\275\320\270\321\217.os" | 15 +- ...20\265\321\202\320\276\320\264\321\213.os" | 95 +++++- tests/fixtures/cf/Configuration.xml | 4 +- ...0\320\260\320\263\320\276\320\274.feature" | 5 + ...7\320\260\321\203\320\267\320\260.feature" | 5 + tests/fixtures/test.cfe | Bin 4427 -> 5018 bytes ...0\276\320\264\321\203\320\273\321\214.xml" | 18 ++ .../Ext/Module.bsl" | 10 + tests/fixtures/xdd_cfe_FAIL/Configuration.xml | 72 +++++ ...1\201\321\201\320\272\320\270\320\271.xml" | 12 + ...1\217\320\240\320\276\320\273\321\214.xml" | 10 + ...0\276\320\264\321\203\320\273\321\214.xml" | 18 ++ .../Ext/Module.bsl" | 12 + ...\276\320\264\321\203\320\273\321\2141.xml" | 18 ++ .../Ext/Module.bsl" | 7 + tests/fixtures/xdd_cfe_OK/Configuration.xml | 72 +++++ ...1\201\321\201\320\272\320\270\320\271.xml" | 12 + ...1\217\320\240\320\276\320\273\321\214.xml" | 10 + ...1\217\320\240\320\276\320\273\321\214.xml" | 10 + tests/xunits/compileext.os | 4 +- tests/xunits/designer.os | 48 +++ tests/xunits/run.os | 90 ++++++ tests/xunits/update-dev.os | 27 +- ...20\264\320\233\320\276\320\263\320\260.os" | 16 +- ...20\276\320\274\320\260\320\275\320\264.os" | 71 ++++- tests/xunits/vanessa.os | 85 ++++++ tests/xunits/xunit.os | 90 ++++++ vanessa-runner-schema.json | 35 +++ 40 files changed, 1388 insertions(+), 145 deletions(-) create mode 100644 "src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" create mode 100644 "tests/fixtures/feature/\320\221\320\265\320\267 \321\200\320\265\320\260\320\273\320\270\320\267\320\260\321\206\320\270\320\270 \321\210\320\260\320\263\320\260/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\271 \321\201 \320\275\320\265\321\200\320\265\320\260\320\273\320\270\320\267\320\276\320\262\320\260\320\275\320\275\321\213\320\274 \321\210\320\260\320\263\320\276\320\274.feature" create mode 100644 "tests/fixtures/feature/\320\237\320\260\321\203\320\267\320\260/\320\237\320\260\321\203\320\267\320\260.feature" create mode 100644 "tests/fixtures/xdd_cfe_FAIL/CommonModules/\320\242\320\265\321\201\321\202FAIL_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml" create mode 100644 "tests/fixtures/xdd_cfe_FAIL/CommonModules/\320\242\320\265\321\201\321\202FAIL_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl" create mode 100644 tests/fixtures/xdd_cfe_FAIL/Configuration.xml create mode 100644 "tests/fixtures/xdd_cfe_FAIL/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml" create mode 100644 "tests/fixtures/xdd_cfe_FAIL/Roles/\320\242\320\265\321\201\321\202FAIL_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" create mode 100644 "tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml" create mode 100644 "tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl" create mode 100644 "tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141.xml" create mode 100644 "tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141/Ext/Module.bsl" create mode 100644 tests/fixtures/xdd_cfe_OK/Configuration.xml create mode 100644 "tests/fixtures/xdd_cfe_OK/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml" create mode 100644 "tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202OK_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" create mode 100644 "tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" create mode 100644 tests/xunits/designer.os create mode 100644 tests/xunits/run.os create mode 100644 tests/xunits/vanessa.os create mode 100644 tests/xunits/xunit.os diff --git a/packagedef b/packagedef index f4e59c54..41e45578 100644 --- a/packagedef +++ b/packagedef @@ -126,7 +126,7 @@ .ЗависитОт("cmdline", "1.0.0") .ЗависитОт("fluent", "0.6.1") .ЗависитОт("fs", "1.2.0") - .ЗависитОт("ibcmdrunner", "0.2.5") + .ЗависитОт("ibcmdrunner", "0.3.0") .ЗависитОт("json", "1.1.1") .ЗависитОт("logos", "1.7.0") .ЗависитОт("ParserFileV8i", "0.0.5") diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" index bf23e46f..9a1654d7 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\222\320\240\320\265\320\266\320\270\320\274\320\265\320\237\321\200\320\265\320\264\320\277\321\200\320\270\321\217\321\202\320\270\321\217.os" @@ -1,6 +1,7 @@ /////////////////////////////////////////////////////////////////////////////////////////////////// // -// Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей запускаемых обработок и параметров +// Выполнение команды/действия в 1С:Предприятие в режиме тонкого/толстого клиента с передачей +// запускаемых обработок и параметров // // TODO добавить фичи для проверки команды // @@ -11,13 +12,16 @@ // /////////////////////////////////////////////////////////////////////////////////////////////////// -#Использовать logos -#Использовать v8runner +#Использовать fs -Перем Лог; +#Область ОписаниеПеременных -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Прикладной интерфейс +Перем Лог; // Экземпляер логгера +Перем ПутьОбработкиДляЗапуска; // Путь внешней обработки 1С для запуска в предприятии + +#КонецОбласти + +#Область ОбработчикиСобытий // Регистрация команды и ее аргументов/ключей // @@ -55,6 +59,9 @@ | Значение ""2"" означает выполнение запуска с предупреждением. | Любое другое значение эквивалентно отсутствию файла."); + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--ibsrv", + "Запуск команды с использованием утилиты ibsrv"); + Парсер.ДобавитьКоманду(ОписаниеКоманды); КонецПроцедуры // ЗарегистрироватьКоманду @@ -65,24 +72,37 @@ // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) // +// Возвращаемое значение: +// Число - Код возврата команды +// Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт - Лог = ДополнительныеПараметры.Лог; + Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры); + + ПутьОбработкиДляЗапуска = ПутьОбработкиДляЗапуска(ПараметрыКоманды["--execute"]); + + ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера(); + + Действие = Новый Действие(ЭтотОбъект, "ЗапуститьВРежимеПредприятия"); + Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера); + +КонецФункции + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ЗапуститьВРежимеПредприятия(ПараметрыКоманды) Экспорт // TODO отрефакторить получение ЗапускатьТолстыйКлиент ЗапускатьТолстыйКлиент = ОбщиеМетоды.УказанПараметрТолстыйКлиент(ПараметрыКоманды["--ordinaryapp"], Лог); ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; МенеджерКонфигуратора = Новый МенеджерКонфигуратора; - - ПутьОбработки1С = ПараметрыКоманды["--execute"]; - ПутьОбработки1С = Заменить_runnerRoot_на_КаталогVanessaRunner(ПутьОбработки1С); - ПутьОбработки1С = ОбщиеМетоды.ПолныйПуть(ПутьОбработки1С); + МенеджерКонфигуратора.Конструктор(ДанныеПодключения, ПараметрыКоманды); ОжидатьЗавершения = Не ПараметрыКоманды["--no-wait"]; - МенеджерКонфигуратора.Конструктор(ДанныеПодключения, ПараметрыКоманды); - ПутьКФайлуСтатусаВыполнения = ПараметрыКоманды["--exitCodePath"]; КомандаЗапуска = КомандаЗапуска(ПараметрыКоманды["--command"], ПутьКФайлуСтатусаВыполнения); ПутьЛогаВыполнения = ПараметрыКоманды["--online-file"]; @@ -102,7 +122,7 @@ Попытка МенеджерКонфигуратора.ЗапуститьВРежимеПредприятияСПроверкойВыполнения( ДопСообщения, - КомандаЗапуска, ПутьОбработки1С, + КомандаЗапуска, ПутьОбработкиДляЗапуска, ЗапускатьТолстыйКлиент, ДополнительныеПараметры, ОжидатьЗавершения, ПутьЛогаВыполнения, @@ -115,8 +135,13 @@ МенеджерКонфигуратора.Деструктор(); Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; + КонецФункции // ВыполнитьКоманду +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Функция КомандаЗапуска(Знач ПараметрКомандаЗапуска, Знач ПутьКФайлуСтатусаВыполнения) КомандыЗапуска = Новый Массив; @@ -148,3 +173,23 @@ Функция Заменить_runnerRoot_на_КаталогVanessaRunner(Знач ИсходнаяСтрока) Возврат СтрЗаменить(ИсходнаяСтрока, "$runnerRoot", ОбщиеМетоды.КаталогПроекта()); КонецФункции + +Функция ПутьОбработкиДляЗапуска(Знач ПутьОбработки1С) + + Если ПустаяСтрока(ПутьОбработки1С) Тогда + Возврат ""; + КонецЕсли; + + ПутьОбработки1С = Заменить_runnerRoot_на_КаталогVanessaRunner(ПутьОбработки1С); + ПутьОбработки1С = ОбщиеМетоды.ПолныйПуть(ПутьОбработки1С); + + Если ФС.ФайлСуществует(ПутьОбработки1С) Тогда + Возврат ПутьОбработки1С; + Иначе + ВызватьИсключение СтрШаблон("Файл внешней обработки ""%1"" не существует на диске!", + ПутьОбработки1С); + КонецЕсли; + +КонецФункции + +#КонецОбласти diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os" index f5d0e92f..15d27b5a 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\227\320\260\320\277\321\203\321\201\321\202\320\270\321\202\321\214\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200.os" @@ -9,13 +9,13 @@ // /////////////////////////////////////////////////////////////////////////////////////////////////// -#Использовать logos -#Использовать v8runner +#Область ОписаниеПеременных Перем Лог; -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Прикладной интерфейс +#КонецОбласти + +#Область ОбработчикиСобытий // Регистрация команды и ее аргументов/ключей // @@ -39,6 +39,9 @@ Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-user", "Пользователь хранилища"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--storage-pwd", "Пароль"); + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--ibsrv", + "Запуск команды с использованием утилиты ibsrv"); + Парсер.ДобавитьКоманду(ОписаниеКоманды); КонецПроцедуры // ЗарегистрироватьКоманду @@ -51,7 +54,21 @@ // Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт - Лог = ДополнительныеПараметры.Лог; + Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры); + + ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера(); + ПараметрыАвтономногоСервера.ИспользоватьПрямоеСоединение = Истина; + + Действие = Новый Действие(ЭтотОбъект, "ЗапуститьКонфигуратор"); + Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера); + +КонецФункции // ВыполнитьКоманду + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ЗапуститьКонфигуратор(ПараметрыКоманды) Экспорт ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; @@ -87,4 +104,6 @@ МенеджерКонфигуратора.Деструктор(); Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; -КонецФункции // ВыполнитьКоманду +КонецФункции + +#КонецОбласти diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" index ac159c28..4427b48b 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\230\320\275\320\270\321\206\320\270\320\260\320\273\320\270\320\267\320\260\321\206\320\270\321\217\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" @@ -10,16 +10,16 @@ #Область ОписаниеПеременных Перем Лог; // Экземпляр логгера -Перем КорневойПутьПроекта; +Перем КорневойПутьПроекта; // Путь к корневой папке проекта // Параметры команды -Перем ДанныеПодключения; -Перем ПараметрыХранилища; -Перем РежимыРеструктуризации; -Перем РежимРазработчика; -Перем ПутьКФайлуКонфигурации; -Перем ПутьКИсходникам; -Перем ПутьКФайлуВыгрузки; +Перем ДанныеПодключения; // Данные подключения к ИБ +Перем ПараметрыХранилища; // Параметры подключения к хранилищу +Перем РежимыРеструктуризации; // Доступные режимы реструктуризации +Перем РежимРазработчика; // Режим разработчика +Перем ПутьКФайлуКонфигурации; // Путь к файлу конфигурации +Перем ПутьКИсходникам; // Путь к исходным файлам кофнигурации +Перем ПутьКФайлуВыгрузки; // Путь к файлу выгрузки информационной базы #КонецОбласти diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" index d9f9bfb9..fd1216bf 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\236\320\261\320\275\320\276\320\262\320\273\320\265\320\275\320\270\320\265\320\236\320\272\321\200\321\203\320\266\320\265\320\275\320\270\321\217.os" @@ -6,20 +6,22 @@ // oscript-app-template (C) EvilBeaver // /////////////////////////////////////////////////////////////////// + #Использовать gitrunner + #Область ОписаниеПеременных Перем Лог; // Экземпляр логгера -Перем КорневойПутьПроекта; - -Перем ДанныеПодключения; -Перем ПараметрыХранилища; -Перем РежимыРеструктуризации; -Перем РежимРазработчика; -Перем ПутьКИсходникам; -Перем ПутьКФайлуВыгрузки; -Перем ИнкрементальнаяЗагрузкаGit; -Перем СниматьСПоддержки; +Перем КорневойПутьПроекта; // Путь к корневой папке проекта + +Перем ДанныеПодключения; // Данные подключения к ИБ +Перем ПараметрыХранилища; // Параметры подключения к хранилищу +Перем РежимыРеструктуризации; // Доступные режимы реструктуризации +Перем РежимРазработчика; // Режим разработчика +Перем ПутьКИсходникам; // Путь к исходным файлам кофнигурации +Перем ПутьКФайлуВыгрузки; // Путь к файлу выгрузки информационной базы +Перем ИнкрементальнаяЗагрузкаGit; // Использовать инкрементальную загрузку из репозитория git +Перем СниматьСПоддержки; // Снимать конфигурацию с поддержки перед загрузкой #КонецОбласти diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.os" index 3ee241d9..b5f29a09 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\261\320\276\321\200\320\272\320\260\320\240\320\260\321\201\321\210\320\270\321\200\320\265\320\275\320\270\320\271.os" @@ -61,7 +61,7 @@ МенеджерСборки.Деструктор(); ВызватьИсключение ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); КонецПопытки; - Лог.Информация("Сборка расширения из исходников завершена."); + Лог.Информация("Сборка расширения %1 из исходников завершена.", ИмяРасширения); МенеджерСборки.Деструктор(); diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\244\320\260\320\271\320\273\320\237\320\276\321\201\321\202\320\260\320\262\320\272\320\270.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\244\320\260\320\271\320\273\320\237\320\276\321\201\321\202\320\260\320\262\320\272\320\270.os" index b7c05dc4..289117ce 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\244\320\260\320\271\320\273\320\237\320\276\321\201\321\202\320\260\320\262\320\272\320\270.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\241\320\276\320\267\320\264\320\260\321\202\321\214\320\244\320\260\320\271\320\273\320\237\320\276\321\201\321\202\320\260\320\262\320\272\320\270.os" @@ -9,21 +9,21 @@ // /////////////////////////////////////////////////////////////////////////////////////////////////// -#Использовать logos -#Использовать v8runner +#Область ОписаниеПеременных -Перем Лог; -Перем МенеджерКонфигуратора; -Перем МенеджерВерсий; +Перем Лог; // Экземпляр логгера +Перем МенеджерКонфигуратора; // Экземпляр менеджера работы с конфигурацией +Перем МенеджерВерсий; // Эксземпляр менеджера работы с версиями // Параметры команды -Перем ИмяФайлаПоставки; -Перем КаталогИсходников; -Перем НомерСборки; -Перем ЗагружатьВТекущую; +Перем ИмяФайлаПоставки; // Путь к файлу конфигурации поставки +Перем КаталогИсходников; // Каталог с исходниками конфигурации +Перем НомерСборки; // Текущий номер сборки +Перем ЗагружатьВТекущую; // Флаг загрузки в текущую информационную базу -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Прикладной интерфейс +#КонецОбласти + +#Область ОбработчикиСобытий Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт @@ -41,7 +41,8 @@ Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--src", "Каталог с исходниками конфигурации"); Парсер.ДобавитьИменованныйПараметрКоманды(ОписаниеКоманды, "--build-number", "Номер сборки"); Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--current", "Флаг загрузки в указанную базу или -с"); - Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-c", "Флаг загрузки в указанную базу, краткая форма от --current"); + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "-c", + "Флаг загрузки в указанную базу, краткая форма от --current"); Парсер.ДобавитьКоманду(ОписаниеКоманды); @@ -53,6 +54,9 @@ // ПараметрыКоманды - Соответствие - Соответствие ключей командной строки и их значений // ДополнительныеПараметры - Соответствие - дополнительные параметры (необязательно) // +// Возвращаемое значение: +// Число - Код возврата команды. +// Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт Лог = ДополнительныеПараметры.Лог; @@ -86,6 +90,10 @@ КонецФункции // ВыполнитьКоманду +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + Процедура СоздатьФайлПоставки() Если ЗначениеЗаполнено(КаталогИсходников) Тогда @@ -119,3 +127,5 @@ КонецЦикла; КонецПроцедуры + +#КонецОбласти diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" index edc744dd..bb33aed6 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265_xUnitFor1C.os" @@ -12,17 +12,18 @@ // /////////////////////////////////////////////////////////////////////////////////////////////////// -#Использовать logos -#Использовать v8runner #Использовать asserts #Использовать fs -Перем Лог; +#Область ОписаниеПеременных + +Перем Лог; // Экземпляр логгера Перем МенеджерКонфигуратора; Перем ВанессаАДД; -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Прикладной интерфейс +#КонецОбласти + +#Область ОбработчикиСобытий Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт @@ -94,6 +95,9 @@ Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--no-shutdown", "Не завершать работу 1С:Предприятие после выполнения тестов"); + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--ibsrv", + "Запуск команды с использованием утилиты ibsrv"); + Парсер.ДобавитьКоманду(ОписаниеКоманды); КонецПроцедуры @@ -106,11 +110,20 @@ // Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт - Попытка - Лог = ДополнительныеПараметры.Лог; - Исключение - Лог = Логирование.ПолучитьЛог(ПараметрыСистемы.ИмяЛогаСистемы()); - КонецПопытки; + Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры); + + ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера(); + + Действие = Новый Действие(ЭтотОбъект, "ВыполнитьТестирование"); + Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера); + +КонецФункции + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ВыполнитьТестирование(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт ЗапускатьТолстыйКлиент = ОбщиеМетоды.УказанПараметрТолстыйКлиент(ПараметрыКоманды["--ordinaryapp"], Лог); ОжидатьЗавершения = Не ПараметрыКоманды["--no-wait"]; @@ -161,6 +174,10 @@ Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; КонецФункции +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + // Выполняем запуск тестов для xunit // // Параметры: @@ -361,3 +378,5 @@ ВызватьИсключение СообщениеОшибки; КонецЕсли; КонецПроцедуры + +#КонецОбласти diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" index 85ae6202..012dfbe0 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\232\320\276\320\274\320\260\320\275\320\264\320\260\320\242\320\265\321\201\321\202\320\270\321\200\320\276\320\262\320\260\320\275\320\270\320\265\320\237\320\276\320\262\320\265\320\264\320\265\320\275\320\270\321\217.os" @@ -9,17 +9,18 @@ // /////////////////////////////////////////////////////////////////////////////////////////////////// -#Использовать logos -#Использовать v8runner #Использовать asserts #Использовать json -Перем Лог; +#Область ОписаниеПеременных + +Перем Лог; // Экземпляр логгера Перем МенеджерКонфигуратора; Перем ВанессаАДД; -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Прикладной интерфейс +#КонецОбласти + +#Область ОбработчикиСобытий Процедура ЗарегистрироватьКоманду(Знач ИмяКоманды, Знач Парсер) Экспорт @@ -57,6 +58,9 @@ Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--no-wait", "Не ожидать завершения запущенной команды/действия"); + Парсер.ДобавитьПараметрФлагКоманды(ОписаниеКоманды, "--ibsrv", + "Запуск команды с использованием утилиты ibsrv"); + Парсер.ДобавитьКоманду(ОписаниеКоманды); КонецПроцедуры @@ -69,12 +73,21 @@ // Функция ВыполнитьКоманду(Знач ПараметрыКоманды, Знач ДополнительныеПараметры = Неопределено) Экспорт - Попытка - Лог = ДополнительныеПараметры.Лог; - Исключение - Лог = Логирование.ПолучитьЛог(ПараметрыСистемы.ИмяЛогаСистемы()); - КонецПопытки; + Лог = ОбщиеМетоды.ЛогКоманды(ДополнительныеПараметры); + + ПараметрыАвтономногоСервера = ОбщиеМетоды.НовыеПараметрыАвтономногоСервера(); + + Действие = Новый Действие(ЭтотОбъект, "ТестированиеПоведения"); + Возврат ОбщиеМетоды.ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера); +КонецФункции + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +Функция ТестированиеПоведения(Знач ПараметрыКоманды) Экспорт + ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; ЗапускатьТолстыйКлиент = ОбщиеМетоды.УказанПараметрТолстыйКлиент(ПараметрыКоманды["--ordinaryapp"], Лог); @@ -113,8 +126,13 @@ МенеджерКонфигуратора.Деструктор(); Возврат МенеджерКомандПриложения.РезультатыКоманд().Успех; + КонецФункции +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + // Выполняем запуск тестов для vannessa // // Параметры: @@ -217,3 +235,5 @@ Лог.Информация("Тестирование поведения завершено"); КонецПроцедуры + +#КонецОбласти diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibcmd.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibcmd.os" index 79eee776..7aa231fb 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibcmd.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibcmd.os" @@ -43,6 +43,13 @@ КонецПроцедуры +// Создать новую файловую базу из файла выгрузки или пустую. +// +// Параметры: +// КаталогБазы - Строка - Каталог информационной базы +// ПутьКШаблону - Строка - Путь к файлу выгрузки конфигурации. +// ИмяБазыВСписке - Строка - Имя базы для показа в списке баз стартера 1С. +// Процедура СоздатьФайловуюБазу(Знач КаталогБазы, Знач ПутьКШаблону = "", Знач ИмяБазыВСписке = "") Экспорт ОбщиеМетоды.ОбеспечитьПустойКаталог(Новый Файл(КаталогБазы)); @@ -55,6 +62,14 @@ КонецПроцедуры +// Создать информационную базу из исходников +// +// Параметры: +// ВходнойКаталог - Строка - Каталог с исходниками конфигурации +// СписокФайловДляЗагрузки - Строка, Массив из Строка - Файлы для инкрементальной загрузки. +// СниматьСПоддержки - Булево - Снимать конфигурацию с поддержки перед загрузкой. +// ОбновитьФайлВерсий - Булево - Обновлять файл версий метаданных. +// Процедура СобратьИзИсходниковТекущуюКонфигурацию(Знач ВходнойКаталог, Знач СписокФайловДляЗагрузки = "", СниматьСПоддержки = Ложь, ОбновитьФайлВерсий = Истина) Экспорт @@ -88,7 +103,13 @@ // ПутьКВыгружаемомуФайлуСДанными - Строка - Путь к результату - выгружаемому файлу с данными (*.dt) // Процедура ВыгрузитьИнфобазуВФайл(Знач ПутьКВыгружаемомуФайлуСДанными) Экспорт + + Лог.Информация("Запускаю выгрузку информационной базы в файл"); + УправлениеИБ.ВыгрузитьДанныеИБ(ПутьКВыгружаемомуФайлуСДанными); + + Лог.Информация("Выгрузка в файл завершена."); + КонецПроцедуры // Загружает информационную базу из файла @@ -98,59 +119,101 @@ // КоличествоЗаданий - Число - Количество заданий (потоков) загрузки из файла с данными // Процедура ЗагрузитьИнфобазуИзФайла(Знач ПутьКЗагружаемомуФайлуСДанными, Знач КоличествоЗаданий = 0) Экспорт + + Лог.Информация("Запускаю загрузку информационной базы из файла"); + УправлениеИБ.ЗагрузитьДанныеИБ(ПутьКЗагружаемомуФайлуСДанными); + + Лог.Информация("Загрузка из файла завершена."); + КонецПроцедуры +// Загружает файл конфигурации в текущую базу данных. +// +// Параметры: +// ПутьКФайлу - Строка - Путь к файлу *.cf +// СниматьСПоддержки - Булево - Перед загрузкой снять текущую конфигурацию ИБ с поддержки. +// Процедура ЗагрузитьФайлКонфигурации(Знач ПутьКФайлу, Знач СниматьСПоддержки = Истина) Экспорт ИмяРасширения = ""; + Лог.Информация("Загружаем файл конфигурации %1", ПутьКФайлу); + Если СниматьСПоддержки Тогда УправлениеИБ.СнятьСПоддержки(); КонецЕсли; УправлениеИБ.ЗагрузитьКонфигурацию(ПутьКФайлу, ИмяРасширения); + Лог.Информация("Загрузка конфигурации из файла cf успешно завершена!"); + КонецПроцедуры +// Обновить конфигурацию базы данных +// +// Параметры: +// ДинамическоеОбновление - Булево - Выполнять динамическое обновление. +// Процедура ОбновитьКонфигурациюБазыДанных(ДинамическоеОбновление = Ложь) Экспорт Если ДинамическоеОбновление Тогда - РежимДинамическогоОбновления = "disable"; - Иначе РежимДинамическогоОбновления = "auto"; + Иначе + РежимДинамическогоОбновления = "disable"; КонецЕсли; - ЗавершатьСеансы = "force"; + ЗавершатьСеансы = "force"; ИмяРасширения = ""; + + Лог.Информация("Запускаю обновление конфигурации БД"); + УправлениеИБ.ОбновитьКонфигурациюБазыДанных(ИмяРасширения, РежимДинамическогоОбновления, ЗавершатьСеансы); Лог.Информация("Обновление конфигурации БД завершено."); КонецПроцедуры -// ОбновитьРасширение +// Обновить конфигурацию базы данных для расширения // // Параметры: -// ИмяРасширения - Строка - <описание параметра> +// ИмяРасширения - Строка - имя расширения // Процедура ОбновитьРасширение(Знач ИмяРасширения) Экспорт РежимДинамическогоОбновления = "disable"; ЗавершатьСеансы = "force"; + Лог.Информация("Запускаю обновление конфигурации БД для расширения %1", ИмяРасширения); + УправлениеИБ.ОбновитьКонфигурациюБазыДанных(ИмяРасширения, РежимДинамическогоОбновления, ЗавершатьСеансы); + + Лог.Информация("Обновление конфигурации БД для расширения %1 завершено.", ИмяРасширения); + КонецПроцедуры +// Вывести в консоль список всех расширений информационной базы. +// Процедура ПоказатьСписокВсехРасширенийКонфигурации() Экспорт + СписокРасширений = УправлениеИБ.СписокРасширений(); Лог.Информация("Список расширений конфигурации:%2%1", СписокРасширений, Символы.ПС); + КонецПроцедуры +// Выгружает файл конфигурации из ИБ +// +// Параметры: +// ПутьКНужномуФайлуКонфигурации - Строка - Путь к выгружаемому файлу конфигурации (*.cf) +// Процедура ВыгрузитьКонфигурациюВФайл(Знач ПутьКНужномуФайлуКонфигурации) Экспорт + Лог.Информация("Запускаю выгрузку конфигурации в файл"); + УправлениеИБ.ВыгрузитьКонфигурациюВФайл(ПутьКНужномуФайлуКонфигурации); + Лог.Информация("Выгрузка в файл завершена."); + КонецПроцедуры // Разбор текущей конфигураций на исходники штатной выгрузкой 1С @@ -159,7 +222,8 @@ // КаталогВыгрузки - Строка - Путь к каталогу выгрузки // ФайлВерсии - Строка - Путь к файлу версии // ТолькоИзмененные - Булево - Выгружать только измененные файлы для ускорения выгрузки -// ИспользоватьПереименования - Булево - Переименовывать файлы в удобные имена и раскладывать по папкам согласно иерархии метаданных +// ИспользоватьПереименования - Булево - Переименовывать файлы в удобные имена и раскладывать +// по папкам согласно иерархии метаданных // Процедура РазобратьНаИсходникиТекущуюКонфигурацию(КаталогВыгрузки, Знач ФайлВерсии = "", Знач ТолькоИзмененные = Истина, @@ -209,7 +273,8 @@ // ФайлКонфигурации - Строка - Путь к источнику - выгружаемому файлу конфигурации (*.cf) // ВыходнойКаталог - Строка - Путь к каталогу выгрузки // ФайлВерсии - Строка - Путь к файлу версии -// ИспользоватьПереименования - Булево - Переименовывать файлы в удобные имена и раскладывать по папкам согласно иерархии метаданных +// ИспользоватьПереименования - Булево - Переименовывать файлы в удобные имена и раскладывать +// по папкам согласно иерархии метаданных // Процедура ВыгрузитьКонфигурациюВИсходники(Знач ФайлКонфигурации, Знач ВыходнойКаталог, Знач ФайлВерсии = "", Знач ИспользоватьПереименования = Ложь) Экспорт @@ -219,14 +284,25 @@ КонецПроцедуры +// Собирает из исходников расширение с указанным имененм +// +// Параметры: +// Каталог - Строка - путь каталогу с иходниками расширения +// ИмяРасширения - Строка - Имя расширения +// Обновить - Булево - Признак обновления расширения в базе, имеет смысл только на пустой базе или первой загрузке. +// Процедура СобратьИзИсходниковРасширение(Каталог, ИмяРасширения, Обновить = Ложь) Экспорт + Лог.Информация("Выполняю сборку/загрузку расширения %1 из каталога %2", ИмяРасширения, Каталог); + УправлениеИБ.ЗагрузитьКонфигурациюИзФайлов(Каталог, ИмяРасширения); Если Обновить Тогда УправлениеИБ.ОбновитьКонфигурациюБазыДанных(ИмяРасширения); КонецЕсли; + Лог.Информация("Сборка/загрузка расширения %1 завершена", ИмяРасширения); + КонецПроцедуры // Выгружает файл расширения из ИБ @@ -305,7 +381,8 @@ КонецЕсли; Возврат ИзмененияКонфигурации; -КонецФункции +КонецФункции + #КонецОбласти #Область ОбработчикиСобытий diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" new file mode 100644 index 00000000..be64c5ab --- /dev/null +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200Ibsrv.os" @@ -0,0 +1,274 @@ + +#Использовать ibcmdrunner + +// BSLLS:LatinAndCyrillicSymbolInWord-off + +#Область ОписаниеПеременных + +Перем Лог; // Содержит объект лога +Перем ВременныйКаталогДанныхСервера; // Временный каталог данных автономного сервера +Перем МенеджерАС; // Вложенный объект упрапвления автономным сервером +Перем ПортHttpДоступа; // Основной сетевой порт, обслуживаемый сервером. + +Перем ИспользоватьПрямоеСоединение; // Режим использования прямого соединения +Перем ПортПрямогоСоединения; // Основной сетевой порт установки прямого соединения с сервером + +Перем ИспользоватьОтладку; // Режим использования отладки +Перем ПортОтладки; // Основной порт отладки + +#КонецОбласти + +#Область ПрограммныйИнтерфейс + +// Выполняет действие запуска платформы 1С через автономный сервер +// +// Параметры: +// Действие - Действие - Метод выполняющий запуск платформы 1С. +// ПараметрыКоманды - Соответствие - Параметры команды +// +// Возвращаемое значение: +// Число - Код возврата команды запуска. +// +Функция ВыполнитьДействие(Действие, ПараметрыКоманды) Экспорт + + ЗапуститьМенеджерАС(); + Лог.Информация("Запущен ibsrv на основном порту %1", ПортHttpДоступа); + + УстановитьДанныеПодключения(ПараметрыКоманды); + + Попытка + Результат = Действие.Выполнить(ПараметрыКоманды); + Исключение + МенеджерАС.Остановить(); + Лог.Информация("Процесс ibsrv остановлен"); + ВызватьИсключение; + КонецПопытки; + + МенеджерАС.Остановить(); + Лог.Информация("Процесс ibsrv остановлен"); + + Возврат Результат; + +КонецФункции + +// Включает режим прямого соединения с автономным сервером +// +Процедура ВключитьПрямоеСоединение() Экспорт + ИспользоватьПрямоеСоединение = Истина; +КонецПроцедуры + +// Включает режим отладки на автономном сервере +// +Процедура ВключитьОтладку() Экспорт + ИспользоватьОтладку = Истина; +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытий + +Процедура ПриСозданииОбъекта(ПараметрыКоманды) + + Лог = Логирование.ПолучитьЛог(ПараметрыСистемы.ИмяЛогаСистемы()); + ВременныйКаталогДанныхСервера = ВременныеФайлы.СоздатьКаталог(); + + МенеджерАС = Новый УправлениеАС(); + МенеджерАС.УстановитьКаталогДанных(ВременныйКаталогДанныхСервера); + + ПортHttpДоступа = ПортHttpДоступа(); + + ИспользоватьПрямоеСоединение = Ложь; + ПортПрямогоСоединения = ПортПрямогоСоединения(); + + ИспользоватьОтладку = Ложь; + ПортОтладки = ПортОтладки(); + + ДанныеПодключения = ОбщиеМетоды.ДанныеПодключения(ПараметрыКоманды); + + ВерсияПлатформы = ДанныеПодключения.ВерсияПлатформы; + Если ЗначениеЗаполнено(ВерсияПлатформы) Тогда + Если ЗначениеЗаполнено(ДанныеПодключения.РазрядностьПлатформы) Тогда + Разрядность = ОбщиеМетоды.РазрядностьПлатформы(ДанныеПодключения.РазрядностьПлатформы); + Лог.Отладка("Разрядность платформы 1С указана %1", ДанныеПодключения.РазрядностьПлатформы); + Иначе + Разрядность = ОбщиеМетоды.РазрядностьПлатформы("x64x86"); + Лог.Отладка("Разрядность платформы 1С не указана, используем значение x64x86"); + КонецЕсли; + + МенеджерАС.УстановитьВерсиюПлатформы(ВерсияПлатформы, Разрядность); + КонецЕсли; + + Лог.Информация("Используется ibsrv платформы %1", МенеджерАС.Версия()); + + КаталогБазы = ОбщиеМетоды.КаталогФайловойИБ(ДанныеПодключения.ПутьБазы); + МенеджерАС.УстановитьПараметрыФайловойИБ(КаталогБазы); + +КонецПроцедуры + +Процедура Деструктор() Экспорт + + Попытка + ВременныеФайлы.УдалитьФайл(ВременныйКаталогДанныхСервера); + Исключение + ИнформацияОбОшибке = ИнформацияОбОшибке(); + Лог.Отладка(КраткоеПредставлениеОшибки(ИнформацияОбОшибке)); + КонецПопытки; + + ВременныйКаталогДанныхСервера = ""; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Функция СтрокаПрямогоСоединения() + Возврат СтрШаблон("/S localhost:%1/DefAlias", XMLСтрока(ПортПрямогоСоединения)); +КонецФункции + +Функция СтрокаВебСоединения() + Возврат СтрШаблон("/WS http://localhost:%1/", XMLСтрока(ПортHttpДоступа)); +КонецФункции + +Процедура УстановитьДанныеПодключения(ПараметрыКоманды) + + ДанныеПодключения = ПараметрыКоманды["ДанныеПодключения"]; + + Если ИспользоватьПрямоеСоединение Тогда + СтрокаСоединения = СтрокаПрямогоСоединения(); + Иначе + СтрокаСоединения = СтрокаВебСоединения(); + КонецЕсли; + + НовыеДанныеПодключения = Новый Структура(ДанныеПодключения); + НовыеДанныеПодключения.ПутьБазы = СтрокаСоединения; + НовыеДанныеПодключения.СтрокаПодключения = СтрокаСоединения; + Лог.Отладка("Установлена строка подключения к ИБ: %1", СтрокаСоединения); + + ПараметрыКоманды["ДанныеПодключения"] = НовыеДанныеПодключения; + +КонецПроцедуры + +Процедура ЗапуститьМенеджерАС() + + СдвигПортов = ДоступныйСдвигПортов(); + ПортHttpДоступа = ПортHttpДоступа(СдвигПортов); + ПортПрямогоСоединения = ПортПрямогоСоединения(СдвигПортов); + ПортОтладки = ПортОтладки(СдвигПортов); + + СформироватьФайлКонфигурацииАС(СдвигПортов); + + МенеджерАС.Запустить(); + +КонецПроцедуры + +Функция ДоступныйСдвигПортов() + + ДиапазонПортов = 0; // Стандартный сдвиг + КоличествоПопыток = 8; + КоличествоДиапазонов = 32; + + Генератор = Новый ГенераторСлучайныхЧисел(ТекущаяУниверсальнаяДатаВМиллисекундах()); + + Результат = Ложь; + ТекущаяПопытка = 0; + Пока Не Результат И ТекущаяПопытка < КоличествоПопыток Цикл + + СдвигПортов = СдвигПортовДляДиапазона(ДиапазонПортов); + ПортПроверки = ПортHttpДоступа(СдвигПортов); + Если ПортДоступен(ПортПроверки) Тогда + Лог.Отладка("Порт %1 доступен для запуска ibsrv", ПортПроверки); + Результат = Истина; + Прервать; + Иначе + Лог.Отладка("Порт %1 недоступен для запуска ibsrv!", ПортПроверки); + КонецЕсли; + + ТекущаяПопытка = ТекущаяПопытка + 1; + ДиапазонПортов = Генератор.СлучайноеЧисло(1, КоличествоДиапазонов); + + КонецЦикла; + + Если Результат Тогда + Возврат СдвигПортов; + Иначе + ВызватьИсключение "Не найден доступный порт для запуска автономного сервера!"; + КонецЕсли; + +КонецФункции + +Функция СдвигПортовДляДиапазона(ДиапазонПортов) + Возврат 100 * ДиапазонПортов; // BSLLS:MagicNumber-off +КонецФункции + +Функция ПортПрямогоСоединения(СдвигПортов = 0) + Возврат 8341 + СдвигПортов; // BSLLS:MagicNumber-off +КонецФункции + +Функция ПортHttpДоступа(СдвигПортов = 0) + Возврат 8314 + СдвигПортов; // BSLLS:MagicNumber-off +КонецФункции + +Функция ПортОтладки(СдвигПортов = 0) + Возврат 8350 + СдвигПортов; // BSLLS:MagicNumber-off +КонецФункции + +Функция МинимальныйПортПодключения(СдвигПортов = 0) + Возврат 8360 + СдвигПортов; // BSLLS:MagicNumber-off +КонецФункции + +Функция МаксимальныйПортПодключения(СдвигПортов = 0) + Возврат 8391 + СдвигПортов; // BSLLS:MagicNumber-off +КонецФункции + +Функция ПортДоступен(ПортПроверки) + + TCPСервер = Новый TCPСервер(ПортПроверки); + Попытка + TCPСервер.Запустить(); + Исключение + Возврат Ложь; + КонецПопытки; + + TCPСервер.Остановить(); + Возврат Истина; + +КонецФункции + +Процедура СформироватьФайлКонфигурацииАС(СдвигПортов) + + СетевойИнтерфейс = "any"; + ИмяИБ = "DefAlias"; + РазрешитьВыдачуЛицензий = Истина; + РазрешитьРегламентныеЗадания = Ложь; + + КонфигурационныйФайлАС = Новый КонфигурационныйФайлАС; + КонфигурационныйФайлАС.ПараметрыСервера(СетевойИнтерфейс, ПортHttpДоступа); + КонфигурационныйФайлАС.ПараметрыИБ(ИмяИБ, РазрешитьВыдачуЛицензий, РазрешитьРегламентныеЗадания); + + ИспользоватьШлюзПрямогоДоступа = ИспользоватьПрямоеСоединение; + ИспользоватьШлюзHTTP = Неопределено; + ИспользоватьШлюзSSH = Ложь; + ИспользоватьРасширеннуюФункциональностьКонфигуратора = Неопределено; + КонфигурационныйФайлАС.ПараметрыФункциональностиСервера( + ИспользоватьШлюзПрямогоДоступа, ИспользоватьШлюзHTTP, + ИспользоватьШлюзSSH, ИспользоватьРасширеннуюФункциональностьКонфигуратора); + + Если ИспользоватьПрямоеСоединение Тогда + КонфигурационныйФайлАС.ПараметрыШлюзаПрямогоДоступа(ПортПрямогоСоединения, + МинимальныйПортПодключения(СдвигПортов), + МаксимальныйПортПодключения(СдвигПортов)); + КонецЕсли; + + Если ИспользоватьОтладку Тогда + КонфигурационныйФайлАС.ПараметрыОтладкиСервера("http", ПортОтладки, СетевойИнтерфейс); + КонецЕсли; + + ФайлКонфигурации = ОбъединитьПути(ВременныйКаталогДанныхСервера, "ibsrv.yaml"); + КонфигурационныйФайлАС.СоздатьКонфигурационныйФайл(ФайлКонфигурации); + + МенеджерАС.УстановитьКонфигурационныйФайл(ФайлКонфигурации); + +КонецПроцедуры + +#КонецОбласти diff --git "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" index a2665ddf..3390345f 100644 --- "a/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" +++ "b/src/\320\232\320\273\320\260\321\201\321\201\321\213/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\275\321\204\320\270\320\263\321\203\321\200\320\260\321\202\320\276\321\200\320\260.os" @@ -202,6 +202,13 @@ КонецПроцедуры +// Создать новую файловую базу из файла выгрузки или пустую. +// +// Параметры: +// КаталогБазы - Строка - Каталог информационной базы +// ПутьКШаблону - Строка - Путь к файлу выгрузки конфигурации. +// ИмяБазыВСписке - Строка - Имя базы для показа в списке баз стартера 1С. +// Процедура СоздатьФайловуюБазу(Знач КаталогБазы, Знач ПутьКШаблону = "", Знач ИмяБазыВСписке = "") Экспорт Попытка @@ -288,7 +295,6 @@ // ИмяРасширения - Строка - <описание параметра> // Процедура ОбновитьРасширение(Знач ИмяРасширения) Экспорт - ТекущаяПроцедура = "ОбновитьРасширение"; Лог.Информация("Запускаю обновление расширения %1", ИмяРасширения); @@ -300,7 +306,7 @@ КонецЕсли; Исключение Лог.Ошибка(УправлениеКонфигуратором.ВыводКоманды()); - ВызватьИсключение ТекущаяПроцедура; + ВызватьИсключение; КонецПопытки; Лог.Информация("Обновление расширения завершено."); @@ -1591,26 +1597,24 @@ Лог.Отладка(Приложение); Попытка - ЗапуститьПроцесс1С(Приложение, ПутьЛогаВыполненияСценариев ); - Результат = ВыводПредприятия(ПутьДамп); - - ПроверитьЛогПредприятияНаИзвестныеОшибки(Результат); - - ПоказатьВыводПредприятия(Результат, ДопСообщения.ПоказыватьДополнительноЛогПредприятия); - + ЗапуститьПроцесс1С(Приложение, ПутьЛогаВыполненияСценариев); Исключение - ОписаниеОшибки = ОписаниеОшибки(); + ТекстВывода = ВыводПредприятия(ПутьДамп); + ПоказатьВыводПредприятия(ТекстВывода, Истина); + + ВызватьИсключение; + КонецПопытки; - Результат = ВыводПредприятия(ПутьДамп); - ПоказатьВыводПредприятия(Результат, Истина); + Результат = ВыводПредприятия(ПутьДамп); - Лог.Ошибка(ОписаниеОшибки); - ВызватьИсключение ТекущаяПроцедура; - КонецПопытки; + ПроверитьЛогПредприятияНаИзвестныеОшибки(Результат); + + ПоказатьВыводПредприятия(Результат, ДопСообщения.ПоказыватьДополнительноЛогПредприятия); Лог.Информация("Выполнение команды/действия в режиме 1С:Предприятие завершено."); Возврат Результат; + КонецФункции Процедура ЗапуститьПроцесс1С(Знач СтрокаЗапуска, Знач ПутьКФайлуЛога) @@ -1766,7 +1770,7 @@ НормализованныйЛог = НРег(ЛогПредприятия); Для каждого Ошибка Из ИзвестныеНормализованныеОшибки() Цикл Если Найти(НормализованныйЛог, Ошибка) > 0 Тогда - ВызватьИсключение Ошибка; + ВызватьИсключение ЛогПредприятия; КонецЕсли; КонецЦикла; diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" index c1de0fb5..6d179ef2 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\234\320\265\320\275\320\265\320\264\320\266\320\265\321\200\320\232\320\276\320\274\320\260\320\275\320\264\320\237\321\200\320\270\320\273\320\276\320\266\320\265\320\275\320\270\321\217.os" @@ -200,11 +200,10 @@ ЗначениеПараметраФайлНастроек = ЗначенияПараметров["--settings"]; Если ЗначениеЗаполнено(ЗначениеПараметраФайлНастроек) Тогда ФайлОбщихНастроек = Новый Файл(ОбщиеМетоды.ПолныйПуть(ЗначениеПараметраФайлНастроек)); - Ожидаем.Что(ФайлОбщихНастроек.Существует(), - СтрШаблон("Ожидаем, что указанный в --settings <%1> файл по пути <%2> существует, а его нет!", - ЗначениеПараметраФайлНастроек, - ФайлОбщихНастроек.ПолноеИмя) - ).ЭтоИстина(); + Сообщение = СтрШаблон("Ожидаем, что указанный в --settings <%1> файл по пути <%2> существует, а его нет!", + ЗначениеПараметраФайлНастроек, + ФайлОбщихНастроек.ПолноеИмя); + Ожидаем.Что(ФайлОбщихНастроек.Существует(), Сообщение).ЭтоИстина(); КонецЕсли; НастройкиИзФайла = ОбщиеМетоды.ПрочитатьНастройкиФайлJSON(ТекущийКаталогПроекта, @@ -275,7 +274,7 @@ // специально не через ВременныеФайлы для возможности сохранения файла после завершения ПутьФайлаВывода = ПолучитьИмяВременногоФайла(".log"); // BSLLS:MissingTemporaryFileDeletion-off ФайлВывода = Новый Файл(ПутьФайлаВывода); - ПутьФайлаВывода = ОбъединитьПути(ФайлВывода.Путь, "vrunner-" + ФайлВывода.Имя); // BSLLS:MissingTemporaryFileDeletion-off + ПутьФайлаВывода = ОбъединитьПути(ФайлВывода.Путь, "vrunner-" + ФайлВывода.Имя); Иначе Возврат; КонецЕсли; @@ -397,8 +396,8 @@ Значение = КлючЗначение.Значение; Если ЗначениеЗаполнено(Значение) И РегулярноеВыражение.Совпадает(Значение) Тогда ВызватьИсключение СтрШаблон( - "Запрещено использование слешей как последних символов в параметрах.%1" + - " Это может привести к проблемам при запуске в командной строке.%1%1 Ключ %2 = %3", + "Запрещено использование слэшей как последних символов в параметрах.%1" + + " Это может привести к проблемам при запуске в командной строке.%1%1 Ключ %2 = %3", Символы.ПС, КлючЗначение.Ключ, Значение); КонецЕсли; КонецЦикла; diff --git "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" index f0c4d8c7..db30f0c0 100644 --- "a/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" +++ "b/src/\320\234\320\276\320\264\321\203\320\273\320\270/\320\236\320\261\321\211\320\270\320\265\320\234\320\265\321\202\320\276\320\264\321\213.os" @@ -277,7 +277,6 @@ КонецФункции // ПолныйПуть() - Функция ЭтоОтносительныйПуть(Знач Путь) // BSLLS:IfElseDuplicatedCodeBlock-off @@ -623,6 +622,88 @@ Возврат НайденныйФайл; КонецФункции +// Выполняет запуск команды приложения с дополнительным запуском ibsrv или напрямую. +// +// Параметры: +// ПараметрыКоманды - Соотвествие - Параметры команды +// Действие - Действие - Метод выполняющий запуск платформы 1С. +// ПараметрыАвтономногоСервера - см. НовыеПараметрыАвтономногоСервера +// +// Возвращаемое значение: +// Число - Код возврата команды запуска. +// +Функция ВыполнитьКомандуСУчетомIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера) Экспорт + + Если ИспользоватьIbsrv(ПараметрыКоманды) Тогда + Возврат ВыполнитьЧерезIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера); + Иначе + Возврат Действие.Выполнить(ПараметрыКоманды); + КонецЕсли; + +КонецФункции + +Функция ИспользоватьIbSrv(ПараметрыКоманды) + + ИспользоватьIbsrv = ПараметрыКоманды["--ibsrv"]; + ОжидатьЗавершения = НЕ (ПараметрыКоманды["--no-wait"] = Истина); + ДанныеПодключения = ДанныеПодключения(ПараметрыКоманды); + СтрокаПодключенияИБ = ДанныеПодключения.ПутьБазы; + + Если Не ИспользоватьIbsrv Тогда + Лог.Отладка("Не указан флаг использования ibsrv"); + Возврат Ложь; + + ИначеЕсли Не ОбщиеМетоды.ЭтоФайловаяИБ(СтрокаПодключенияИБ) Тогда + Лог.Предупреждение("Серверные ИБ не поддерживаются ibsrv!"); + Возврат Ложь; + + ИначеЕсли Не ОжидатьЗавершения Тогда + Лог.Предупреждение("Запуск без ожидания не поддерживается при работе с ibsrv!"); + Возврат Ложь; + + Иначе + Лог.Отладка("Используем ibsrv."); + Возврат Истина; + + КонецЕсли; + +КонецФункции + +Функция НовыеПараметрыАвтономногоСервера() Экспорт + + ПараметрыАС = Новый Структура; + ПараметрыАС.Вставить("ИспользоватьПрямоеСоединение", Ложь); + ПараметрыАС.Вставить("ИспользоватьОтладку", Ложь); + + Возврат ПараметрыАС; + +КонецФункции + +Функция ВыполнитьЧерезIbsrv(ПараметрыКоманды, Действие, ПараметрыАвтономногоСервера) + + МенеджерIbsrv = Новый МенеджерIbsrv(ПараметрыКоманды); + + Если ПараметрыАвтономногоСервера.ИспользоватьПрямоеСоединение Тогда + МенеджерIbsrv.ВключитьПрямоеСоединение(); + КонецЕсли; + + Если ПараметрыАвтономногоСервера.ИспользоватьОтладку Тогда + МенеджерIbsrv.ВключитьОтладку(); + КонецЕсли; + + Попытка + Результат = МенеджерIbsrv.ВыполнитьДействие(Действие, ПараметрыКоманды); + Исключение + МенеджерIbsrv.Деструктор(); + ВызватьИсключение; + КонецПопытки; + + МенеджерIbsrv.Деструктор(); + + Возврат Результат; + +КонецФункции + Функция НовыйМенеджерКонфигуратора() Экспорт Логирование.ПолучитьЛог("oscript.lib.v8runner").УстановитьУровень(Лог.Уровень()); Возврат Новый МенеджерКонфигуратора(); @@ -656,5 +737,17 @@ КонецПроцедуры +// Получает данные подключения из параметров команды +// +// Параметры: +// ПараметрыКоманды - Соответствие - Парвметры команды +// +// Возвращаемое значение: +// Структура - Парметры подключения к ИБ +// +Функция ДанныеПодключения(ПараметрыКоманды) Экспорт + Возврат ПараметрыКоманды["ДанныеПодключения"]; +КонецФункции + // из-за особенностей загрузки модуль ОбщиеМетоды грузится раньше ПараметрыСистемы, // поэтому сразу в конце кода модуля использовать ПараметрыСистемы нельзя diff --git a/tests/fixtures/cf/Configuration.xml b/tests/fixtures/cf/Configuration.xml index 616caa9a..8f82018d 100644 --- a/tests/fixtures/cf/Configuration.xml +++ b/tests/fixtures/cf/Configuration.xml @@ -32,7 +32,7 @@ - Version8_3_10 + Version8_3_14 ManagedApplication PersonalComputer @@ -113,7 +113,7 @@ DontUse Use Taxi - Version8_3_10 + Version8_3_14 diff --git "a/tests/fixtures/feature/\320\221\320\265\320\267 \321\200\320\265\320\260\320\273\320\270\320\267\320\260\321\206\320\270\320\270 \321\210\320\260\320\263\320\260/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\271 \321\201 \320\275\320\265\321\200\320\265\320\260\320\273\320\270\320\267\320\276\320\262\320\260\320\275\320\275\321\213\320\274 \321\210\320\260\320\263\320\276\320\274.feature" "b/tests/fixtures/feature/\320\221\320\265\320\267 \321\200\320\265\320\260\320\273\320\270\320\267\320\260\321\206\320\270\320\270 \321\210\320\260\320\263\320\260/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\271 \321\201 \320\275\320\265\321\200\320\265\320\260\320\273\320\270\320\267\320\276\320\262\320\260\320\275\320\275\321\213\320\274 \321\210\320\260\320\263\320\276\320\274.feature" new file mode 100644 index 00000000..11735e03 --- /dev/null +++ "b/tests/fixtures/feature/\320\221\320\265\320\267 \321\200\320\265\320\260\320\273\320\270\320\267\320\260\321\206\320\270\320\270 \321\210\320\260\320\263\320\260/\320\241\321\206\320\265\320\275\320\260\321\200\320\270\320\271 \321\201 \320\275\320\265\321\200\320\265\320\260\320\273\320\270\320\267\320\276\320\262\320\260\320\275\320\275\321\213\320\274 \321\210\320\260\320\263\320\276\320\274.feature" @@ -0,0 +1,5 @@ +# language: ru +Функционал: Выполнение несуществующего шага + +Сценарий: Выполнение несуществующего шага + Когда я выполняю несуществующий шаг diff --git "a/tests/fixtures/feature/\320\237\320\260\321\203\320\267\320\260/\320\237\320\260\321\203\320\267\320\260.feature" "b/tests/fixtures/feature/\320\237\320\260\321\203\320\267\320\260/\320\237\320\260\321\203\320\267\320\260.feature" new file mode 100644 index 00000000..e175beb1 --- /dev/null +++ "b/tests/fixtures/feature/\320\237\320\260\321\203\320\267\320\260/\320\237\320\260\321\203\320\267\320\260.feature" @@ -0,0 +1,5 @@ +# language: ru +Функционал: Сделать паузу в указанное число секунд + +Сценарий: Пауза + Когда Пауза 1 diff --git a/tests/fixtures/test.cfe b/tests/fixtures/test.cfe index 20518554edc401c9b3e7809086ac0f804be8cd30..437550cc2c1aa72469cc1070e2524dc54972e173 100644 GIT binary patch delta 3028 zcmZ9O_dDAQ8^+aEHFHq4Qd^o3rL{}ND1s8SW^1&z5~|1Qm+GQw#S9%p&9s!*MN|=c zMJPhF)F`!T2k(2%`Q?4jeO=FUf3Ev4`1D9(<&sfnM0pt)JpX$qCnvy1*Zxx&7~^>^ zJ+DEFZw8DEe|ME5V+!NHrhVr0e@&PiHU~f*eisb?D}RC7-G2h+I^AS%p6F4_H7$~5 z7E)uVS6~n~!Ajz)y25WZp@8F@CqyWJko(j8!Aa#%otpyHZ>?%3MTZmq6%?k7pii2F_-9}m<{ zPTtyO+xxcKq1MQi;tlc78JB-=O$vVykM+y2Zue|#7x|f>@B*{DoK{1F#fFV~lA9r2Zh2p7NQE@3OA!l$XqRM4)cQA# zV$$&aZ0DIwu6M4rMfxpJ7qv)4vq$o_7%=1$VC3N1EI*fM!t@j-Z)gAQt}&L_X5 z4BSgJd72AIyKcGmHknIDQ-zw3_E+m;W*S@uwr6+oNwd}4sV+`RN*@-+D8W%dO-*&p zpX!cn=`N!uZuBogM{@hs+e!^5hHEYC&7ZKJ#(n`p`|B@gEp>F;NucdU1_eIl#Jr;^zOL32_ zr}kwAHcM~F#4FiHa$wA|B3&0{kcuc7=e8cddP3Jbb3du=vy|YoO8y(ef-S`PVZp!Y z?w3Ix!3gSytTzp-X zgb0TzYiTx2I2Nf&g~JGMRlngK&|6sU)jY>lFXOo2q(*1EO{|!M>Yq7zwql*+OBh?G zpyC9bOQ;u3PAIdk1#C8qep_!zj1_(?I#C_BE?)$EHFhjiC2*af2!Es-Kd^iN$x4H1K+WXBJ2CYvGlmm zk}yzwg>RaZYv1`x<{%LmN>2*eH9CYvn1GTP-tH~3G5TcS=a9++MhXn9D$FvPAC^jd zxW4OwEr~**Du8n+?eYlI?_&sgYJu8y_3H%Ht3| zF{Uhkw?bes`Hlf1#x_+5S0Of8iI*|RwlO`e7tKc8G}1JBP00|_D!8Kb@`swz%RPh| z%Y!g~Z+$##eCq6QmY@w&bapohfhIf*G~_WsyvL|(0v?Lb%MeWOr}dM;)wwAX5n^RF zxM8b4)LkSDQ4GHE>CYP!cSy)%Z02_@s(p3zs{Ri>;MzNQ{&=}*3*SvK7jI&h0XK8# zXJ$^0*49tUu^)7Gv^G3H!cf)9sj@;Pju=;0s{BH3XRkshPwLkNk;MoM8xxxI?HOr$ zZ57l55VvEVpaEchSzE(vy;i&%d|8uM+w+k07*b{B9#|7j9^e%-PBdX0>28%k0SY~J zzS(_z?tB~ARO6dEvgWt;)P>k+Y%;KbZg{XpFH-!E$x2h)S~L>6Aw8d!vl?-=l*^mb zr+BW7&HlHrR;IO?#z=0vu@z+HFt8|UMg@Sxu?;jV`^>_@#>lUV8JhExbFRZ@d-Ck0 z{j6CfVh5jtY+`(>U)6+njB(}lYaGSf7|0W!5sOLN_bjP5-t<0YhH!VDyJ#LEt1R}Y zn`WI<5+$R~up;o{O^OKRkQ9Yvk#Lj`{KJ%sczXSV!j1U*TCT7mX-_+Ckb8%pyflE! zqau)+5GMAD4_SmlTk2#sXjc8v^7CP0)nm=)^d1`jb;#xO@4u{?1$+-9HA|@ZWpD%} z6nl{LR@(GzJ;1has4~4O@g2Fi2LHi}i*7Mh{1Bte!RxIteN7HgDdXH8NpFX2qm3!_5UtI4RLM?RPxwf5ocI0hPXVjz zr1bZz^MH5yqR9}P%-rJxmC#==Y)}XkN~;emRU!`k`nu{;Ng?dHMzwC)^wXq8Q|UWOv}kW zm!L$;!>Z(4bX7?j*dbb1qNVw#CxHm>%)R*~FVTjPUWqQjh^!r zUM5EN^|D@Nh-a}U;H>_cyu60A8lKWFC4d@j%W zh_R7%eocKW-^~{zdM$^C_}rcK=$MSv9>@!?GZygs^pFQ3(lTvOy$~m((~Hz<*7R}| zD`a=idF?oVU(LQl;7tEiEQhjnc(!xu{R@E&LZd@o;(*NyoZ3gl`D=b_Bj`T-PJ4X8 z9o)TW{EUdDO6T5(wNqM(Nk6||K02rm57_8Jv*<@E4oRj;pKE6{Yr$-W#GLB3=ervQ zjZzF9fJY>VN-)}x55Z@`Mfjj(8 z9e>jmGA+8uI%#I(PY`@FQSB=?)Rsi(RT{3{1jN^aQ^>I~KYXPWAbH)0Rf}geK(e0B Kxm&<7(|-U>BH6_N delta 2432 zcmZ9N`9IT-1IK4#uDL#h977_sl{q4E$6Ps6S(f|CQO@Levk1#E_t<7C#DsF@8tGf) zO0Ha?ua7i0bL48@$LIU`<@^0Se|fzg&wt=qsL&^ix96epf#cqd1{hSR^#6q>T_p-2pzgB6F)cJM+Rq zc;40Hi7ofJ?sa+?Wu0EFeX-`MZHkjwz=h>@l}IVFIPueU%0`p*N)RP5h&u>4Ia-T7 zVjO_(&a6k*>?_t%&GZoA!)w>WQj7ha@}shEofK`pdCZ}^5A%lsZ{oPV>YJy1&wHHRWQ=m&ERKxL#oGHPgqH1$QMoluW+HVJbQy=$>UNTLK)`R>x-M_7j>Rw2iv#!bK?Q2zpPp2bUCmiY# zoL>pKkvkuN&tXk^vzzO`n0kn%40wJ9{4)$)4MPXQ&=}pu8NJ4~SpUeVj^kD7{b|bY ztrTW()ZY4w#y_ich)aU=i5iE}&SJ^XpDH}Rtl+kF&-N~YZ9K#A}r)SlQ zt=&IxdK%d~6tm8i`$iOe(Nuw0_i8HQVS9LtQs?dsww}2XUa6zq036sdr&QWnjH~{v z%#eX@UryFa&*v91*6@bL^QllQNwq<2P38x&CyU^MQ~kqh#B{Emd6-$EwN)Y1ana9RW>eyq}#1DYD7^CT8_$ zlt$~n^5PGig|@WEIm)@YlPpZ*@KF1I-a6ZbNz0lw{&NBzLD2cwu+P8olpEI)hDzRVg@5}gUsxBDm* zoNF<)p}apJB#q8KYdg<(N?E3L?5%B}0;hOgQg5YlQQDi}3KvM(DD0d(>wP|ld)k%i z-{8*y6&~HzF0VY^O+XGWepmyth|7M+K`*jKh>a|Xt5b%1L^n^Hbn`qig#24esTik( zM~-utt=za4QZ@O!s93o31G|@^j|&HTN4(LZ8<7KkPapVeJi(nL-aYfS(;S{J22a&QyHDB6S?P zU%797O(bsCF;1(PUv^(z+esDALK3A0_oU zQ%&)>vnXgBm}kQC0@;bS0|=+q`bZ4&z7BjMg%Q>K((T&m?$L>0cK1uW#5Isz950!0 z56zuXjUzfPnX<($F_m&FC4OhGdJhjI(}J*<+k(SA`T(($7AHZJY_0kwW4_VYs^rnV zN#U!mTd&AV8v^Os?T6}8<`xGlO6sYJsd4nZ!3XD7N@{;0z znt@_)ErkAHk=J^fef%lnH1ptu@l^rOZcX7DE!ju}34=MKp+&z3Bjj8OuDKlY3Ls9g zbLR3PuS$bulL4@5vB1CV%vO&Vwqs~8t3+D@_q{DAs}-||XC>O3DQtQO(+n0&gf{wQ zzN;$zM?jmEg_8IsSXhjzkQ)uy3dQa(NxxuxcHxtvJwnUvbTf^faNq>!ro=@Y~3IObc0`>N18C38(Oar%LBb@^B#%qS;m9SbRBH{l|?!Dy>XwAd%B9| zKnB??RRj}(^FD%Pj`~!?Uc#2YKbldqNQy{rZCf9It) zm*rhzA)vOi=O4=FhO9Ice6%<-H?8)OcxyGasjcc=i{N$DuzAlF=UeD4c*YMz>UIpK z{Qx}tAjJ>!=3U30gKv2`SO%`@f#oqWvApS#{#Krw$EJ**;MFf`UUQ<+?tIdfwq + + + + ТестFAIL_ОбщийМодуль + + + false + false + true + true + false + false + false + DontUse + + + \ No newline at end of file diff --git "a/tests/fixtures/xdd_cfe_FAIL/CommonModules/\320\242\320\265\321\201\321\202FAIL_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl" "b/tests/fixtures/xdd_cfe_FAIL/CommonModules/\320\242\320\265\321\201\321\202FAIL_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl" new file mode 100644 index 00000000..437d39ff --- /dev/null +++ "b/tests/fixtures/xdd_cfe_FAIL/CommonModules/\320\242\320\265\321\201\321\202FAIL_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl" @@ -0,0 +1,10 @@ + +Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт + НаборТестов.Добавить("ТестFail"); +КонецПроцедуры + +Процедура ТестFail(Ванесса) Экспорт + + ВызватьИсключение "Тест FAIL!"; + +КонецПроцедуры \ No newline at end of file diff --git a/tests/fixtures/xdd_cfe_FAIL/Configuration.xml b/tests/fixtures/xdd_cfe_FAIL/Configuration.xml new file mode 100644 index 00000000..cd57a891 --- /dev/null +++ b/tests/fixtures/xdd_cfe_FAIL/Configuration.xml @@ -0,0 +1,72 @@ + + + + + + 9cd510cd-abfc-11d4-9434-004095e12fc7 + 986648a2-0daa-4f7c-90f6-55b99394ca68 + + + 9fcd25a0-4822-11d4-9414-008048da11f9 + 78e5b327-4d98-46ce-8e1d-6ce2913a42b3 + + + e3687481-0a87-462c-a166-9f34594f9bba + ff659aab-ce9b-4126-9941-cdd1533eb0c4 + + + 9de14907-ec23-4a07-96f0-85521cb6b53b + 8ae1a01d-72f2-4079-9934-d186b374c4d8 + + + 51f2d5d8-ea4d-4064-8892-82951750031e + d86f397b-5b9d-48d0-aeb4-596a4f003c30 + + + e68182ea-4237-4383-967f-90c1e3370bc7 + 955aa924-ae4d-461c-92d5-004ca627de16 + + + fb282519-d103-4dd3-bc12-cb271d631dfc + 031b5158-f0a7-40ab-a84d-93a307da1563 + + + + Adopted + ТестFAIL + + + ru + Тест FAIL + + + + Customization + true + ТестFAIL_ + Version8_3_14 + ManagedApplication + + PlatformApplication + + Russian + + Role.ТестFAIL_ОсновнаяРоль + + + + Language.Русский + + + + + + Taxi + + + Русский + ТестFAIL_ОсновнаяРоль + ТестFAIL_ОбщийМодуль + + + diff --git "a/tests/fixtures/xdd_cfe_FAIL/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml" "b/tests/fixtures/xdd_cfe_FAIL/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml" new file mode 100644 index 00000000..6dbda9fa --- /dev/null +++ "b/tests/fixtures/xdd_cfe_FAIL/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml" @@ -0,0 +1,12 @@ + + + + + + Adopted + Русский + + ru + + + \ No newline at end of file diff --git "a/tests/fixtures/xdd_cfe_FAIL/Roles/\320\242\320\265\321\201\321\202FAIL_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" "b/tests/fixtures/xdd_cfe_FAIL/Roles/\320\242\320\265\321\201\321\202FAIL_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" new file mode 100644 index 00000000..98795e0b --- /dev/null +++ "b/tests/fixtures/xdd_cfe_FAIL/Roles/\320\242\320\265\321\201\321\202FAIL_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" @@ -0,0 +1,10 @@ + + + + + ТестFAIL_ОсновнаяРоль + + + + + \ No newline at end of file diff --git "a/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml" "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml" new file mode 100644 index 00000000..29890491 --- /dev/null +++ "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214.xml" @@ -0,0 +1,18 @@ + + + + + ТестOK_ОбщийМодуль + + + false + false + true + true + true + false + false + DontUse + + + diff --git "a/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl" "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl" new file mode 100644 index 00000000..d8e3f435 --- /dev/null +++ "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202OK_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\214/Ext/Module.bsl" @@ -0,0 +1,12 @@ + +Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт + НаборТестов.Добавить("ТестOK"); +КонецПроцедуры + +Процедура ТестOK(Ванесса) Экспорт + + Сообщение = Новый СообщениеПользователю; + Сообщение.Текст = "Тест OK!"; + Сообщение.Сообщить(); + +КонецПроцедуры \ No newline at end of file diff --git "a/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141.xml" "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141.xml" new file mode 100644 index 00000000..74ec0bdb --- /dev/null +++ "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141.xml" @@ -0,0 +1,18 @@ + + + + + Тест_ОбщийМодуль1 + + + false + false + true + true + true + false + false + DontUse + + + diff --git "a/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141/Ext/Module.bsl" "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141/Ext/Module.bsl" new file mode 100644 index 00000000..3de44fce --- /dev/null +++ "b/tests/fixtures/xdd_cfe_OK/CommonModules/\320\242\320\265\321\201\321\202_\320\236\320\261\321\211\320\270\320\271\320\234\320\276\320\264\321\203\320\273\321\2141/Ext/Module.bsl" @@ -0,0 +1,7 @@ + +Процедура ЗаполнитьНаборТестов(НаборТестов) Экспорт + НаборТестов.Добавить("Тест_Выполняется"); +КонецПроцедуры + +Процедура Тест_Выполняется(Ванесса) Экспорт +КонецПроцедуры diff --git a/tests/fixtures/xdd_cfe_OK/Configuration.xml b/tests/fixtures/xdd_cfe_OK/Configuration.xml new file mode 100644 index 00000000..b4dbd7e7 --- /dev/null +++ b/tests/fixtures/xdd_cfe_OK/Configuration.xml @@ -0,0 +1,72 @@ + + + + + + 9cd510cd-abfc-11d4-9434-004095e12fc7 + c68551a9-4e35-4db1-9a4e-d2bf7c6224d4 + + + 9fcd25a0-4822-11d4-9414-008048da11f9 + 45b51908-9aba-4ff0-9dde-96fec0c1a8d5 + + + e3687481-0a87-462c-a166-9f34594f9bba + a7007268-2b03-4157-b9cb-a9e597e0831e + + + 9de14907-ec23-4a07-96f0-85521cb6b53b + 53328cf7-8389-4b5c-89f7-1cbf09324b07 + + + 51f2d5d8-ea4d-4064-8892-82951750031e + cc8b9d47-7eeb-4d3d-a94c-b58b25ea35f6 + + + e68182ea-4237-4383-967f-90c1e3370bc7 + 8dc87c7e-a71e-4c7e-aedf-aebc06cd7599 + + + fb282519-d103-4dd3-bc12-cb271d631dfc + 13d6e80b-14c7-44d6-a997-41eece31b85e + + + + Adopted + ТестOK + + + ru + Тест OK + + + + Customization + true + ТестOK_ + Version8_3_14 + ManagedApplication + + PlatformApplication + + Russian + + Role.ТестOK_ОсновнаяРоль + + + + Language.Русский + + + + + + Taxi + + + Русский + ТестOK_ОсновнаяРоль + ТестOK_ОбщийМодуль + + + diff --git "a/tests/fixtures/xdd_cfe_OK/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml" "b/tests/fixtures/xdd_cfe_OK/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml" new file mode 100644 index 00000000..2adb33dc --- /dev/null +++ "b/tests/fixtures/xdd_cfe_OK/Languages/\320\240\321\203\321\201\321\201\320\272\320\270\320\271.xml" @@ -0,0 +1,12 @@ + + + + + + Adopted + Русский + + ru + + + \ No newline at end of file diff --git "a/tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202OK_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" "b/tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202OK_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" new file mode 100644 index 00000000..83ae99ce --- /dev/null +++ "b/tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202OK_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" @@ -0,0 +1,10 @@ + + + + + ТестOK_ОсновнаяРоль + + + + + \ No newline at end of file diff --git "a/tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" "b/tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" new file mode 100644 index 00000000..cded8de4 --- /dev/null +++ "b/tests/fixtures/xdd_cfe_OK/Roles/\320\242\320\265\321\201\321\202_\320\236\321\201\320\275\320\276\320\262\320\275\320\260\321\217\320\240\320\276\320\273\321\214.xml" @@ -0,0 +1,10 @@ + + + + + Тест_ОсновнаяРоль + + + + + \ No newline at end of file diff --git a/tests/xunits/compileext.os b/tests/xunits/compileext.os index ee0feefc..3b49beb5 100644 --- a/tests/xunits/compileext.os +++ b/tests/xunits/compileext.os @@ -30,7 +30,7 @@ // Тогда Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd"); - Исполнитель.ОжидаемЧтоВыводСодержит("Сборка расширения из исходников завершена."); + Исполнитель.ОжидаемЧтоВыводСодержит("Сборка расширения testNew из исходников завершена."); КонецПроцедуры @@ -50,4 +50,4 @@ КонецПроцедуры -#КонецОбласти \ No newline at end of file +#КонецОбласти diff --git a/tests/xunits/designer.os b/tests/xunits/designer.os new file mode 100644 index 00000000..59a57013 --- /dev/null +++ b/tests/xunits/designer.os @@ -0,0 +1,48 @@ +#Использовать asserts +#Использовать tempfiles +#Использовать "utils" +#Использовать "../.." + +#Область ОписаниеПеременных + +Перем НакопленныеВременныеФайлы; // фиксация накопленных времнных файлов для сброса + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +&Тест +Процедура ТестДолжен_ВыгрузитьИнформационноюБазуВФайлIbsrv() Экспорт + + // Дано + Исполнитель = Новый Тест_ИсполнительКоманд("designer"); + Исполнитель.УстановитьКонтекстПустаяИБ(); + Исполнитель.ДобавитьПараметр("--additional", """/DumpDBCfgList -AllExtensions"""); + Исполнитель.ДобавитьФлаг("--ibsrv"); + + // Когда + Исполнитель.ВыполнитьКоманду(); + + // Тогда + Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv"); + Исполнитель.ОжидаемЧтоВыводСодержит("Работа Конфигуратора завершена"); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытий + +Процедура ПередЗапускомТеста() Экспорт + + НакопленныеВременныеФайлы = ВременныеФайлы.Файлы(); + +КонецПроцедуры + +Процедура ПослеЗапускаТеста() Экспорт + + ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(НакопленныеВременныеФайлы); + +КонецПроцедуры + +#КонецОбласти diff --git a/tests/xunits/run.os b/tests/xunits/run.os new file mode 100644 index 00000000..7939fe37 --- /dev/null +++ b/tests/xunits/run.os @@ -0,0 +1,90 @@ +#Использовать asserts +#Использовать tempfiles +#Использовать "utils" +#Использовать "../.." + +#Область ОписаниеПеременных + +Перем НакопленныеВременныеФайлы; // фиксация накопленных времнных файлов для сброса + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +&Тест +Процедура ТестДолжен_ЗапуститьОбработкуЗакрытьПредприятиеIbsrv() Экспорт + + // Дано + Исполнитель = Новый Тест_ИсполнительКоманд("run"); + Исполнитель.СобратьВнешнююОбработку("epf/ЗакрытьПредприятие/ЗакрытьПредприятие.xml", "epf/ЗакрытьПредприятие.epf"); + Исполнитель.УстановитьКонтекстПустаяИБ(); + Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf"); + Исполнитель.ДобавитьФлаг("--ibsrv"); + + // Когда + Исполнитель.ВыполнитьКоманду(); + + // Тогда + Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv"); + Исполнитель.ОжидаемЧтоВыводСодержит("Выполнение команды/действия в режиме 1С:Предприятие завершено."); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗапуститьСНевернымИменемПользователяIbsrv() Экспорт + + // Дано + Исполнитель = Новый Тест_ИсполнительКоманд("run"); + Исполнитель.СобратьВнешнююОбработку("epf/ЗакрытьПредприятие/ЗакрытьПредприятие.xml", "epf/ЗакрытьПредприятие.epf"); + Исполнитель.УстановитьКонтекстПустаяИБ(); + Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf"); + Исполнитель.ДобавитьФлаг("--ibsrv"); + + // Когда + Исполнитель.ДобавитьПараметр("--db-user", "НеизвестныйПользователь"); + + // Тогда + Ожидаем.Что(Исполнитель) + .Метод("ВыполнитьКоманду") + .ВыбрасываетИсключение("Пользователь ИБ не идентифицирован"); + Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ЗапуститьСОткрытиемНавигационнойСсылкиIbsrv() Экспорт + + // Дано + Исполнитель = Новый Тест_ИсполнительКоманд("run"); + Исполнитель.СобратьВнешнююОбработку("epf/ЗакрытьПредприятие/ЗакрытьПредприятие.xml", "epf/ЗакрытьПредприятие.epf"); + Исполнитель.УстановитьКонтекстПустаяИБ(); + Исполнитель.ДобавитьПараметр("--execute", "$runnerRoot/epf/ЗакрытьПредприятие.epf"); + Исполнитель.ДобавитьПараметр("--url", "e1cib/navigationpoint/startpage"); + Исполнитель.ДобавитьФлаг("--ibsrv"); + + // Когда + Исполнитель.ВыполнитьКоманду(); + + // Тогда + Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv"); + Исполнитель.ОжидаемЧтоВыводСодержит("Выполнение команды/действия в режиме 1С:Предприятие завершено."); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытий + +Процедура ПередЗапускомТеста() Экспорт + + НакопленныеВременныеФайлы = ВременныеФайлы.Файлы(); + +КонецПроцедуры + +Процедура ПослеЗапускаТеста() Экспорт + + ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(НакопленныеВременныеФайлы); + +КонецПроцедуры + +#КонецОбласти diff --git a/tests/xunits/update-dev.os b/tests/xunits/update-dev.os index 32996eef..d94e632d 100644 --- a/tests/xunits/update-dev.os +++ b/tests/xunits/update-dev.os @@ -63,11 +63,6 @@ // Когда Исполнитель.ВыполнитьКоманду(); - ЛогВыводаКоманды = СтрШаблон("Лог вывода команды: - |%1", Исполнитель.ЛогКоманды().ВыводЛога()); - Сообщить(ЛогВыводаКоманды); - - //ФС.ОбеспечитьПустойКаталог(ОбъединитьПути(Исполнитель.КаталогКоманды(), ".git")); // Тогда Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd платформы"); @@ -101,12 +96,6 @@ // Когда Исполнитель.ВыполнитьКоманду(); - ЛогВыводаКоманды = СтрШаблон("Лог вывода команды: - |%1", Исполнитель.ЛогКоманды().ВыводЛога()); - Сообщить(ЛогВыводаКоманды); - - //ФС.ОбеспечитьПустойКаталог(ОбъединитьПути(Исполнитель.КаталогКоманды(), ".git")); - // Тогда Исполнитель.ОжидаемЧтоРавно(СокрЛП(Репозиторий.ПолучитьНастройку("core.quotePath")), "false", "Должно быть задано git config core.quotePath == false"); @@ -131,9 +120,6 @@ // Когда Исполнитель.ВыполнитьКоманду(); - ЛогВыводаКоманды = СтрШаблон("Лог вывода команды: - |%1", Исполнитель.ЛогКоманды().ВыводЛога()); - Сообщить(ЛогВыводаКоманды); // Тогда Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd платформы"); @@ -158,16 +144,12 @@ // Когда Исполнитель.ВыполнитьКоманду(); - ЛогВыводаКоманды = СтрШаблон("Лог вывода команды: - |%1", Исполнитель.ЛогКоманды().ВыводЛога()); - Сообщить(ЛогВыводаКоманды); // Тогда Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd платформы"); Исполнитель.ОжидаемЧтоВыводСодержит("Будет выполнена инкрементальная загрузка"); Исполнитель.ОжидаемЧтоВыводСодержит(ОбъединитьПути("Catalogs", "Справочник1.xml")); - Исполнитель.ОжидаемЧтоВыводСодержит("Информационная база обновлена из исходников"); Исполнитель.ОжидаемЧтоВыводСодержит("Обновление конфигурации БД завершено."); @@ -185,9 +167,6 @@ // Когда Исполнитель.ВыполнитьКоманду(); - ЛогВыводаКоманды = СтрШаблон("Лог вывода команды: - |%1", Исполнитель.ЛогКоманды().ВыводЛога()); - Сообщить(ЛогВыводаКоманды); // Тогда Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibcmd платформы"); @@ -196,7 +175,6 @@ Исполнитель.ОжидаемЧтоВыводСодержит("ObjectModule.bsl"); Исполнитель.ОжидаемЧтоВыводСодержит(ОбъединитьПути("Catalogs", "Справочник1.xml")); - Исполнитель.ОжидаемЧтоВыводСодержит("Информационная база обновлена из исходников"); Исполнитель.ОжидаемЧтоВыводСодержит("Обновление конфигурации БД завершено."); @@ -213,16 +191,12 @@ // Когда Исполнитель.ВыполнитьКоманду(); - ЛогВыводаКоманды = СтрШаблон("Лог вывода команды: - |%1", Исполнитель.ЛогКоманды().ВыводЛога()); - Сообщить(ЛогВыводаКоманды); // Тогда Исполнитель.ОжидаемЧтоВыводНеСодержит("Используется ibcmd платформы"); Исполнитель.ОжидаемЧтоВыводСодержит("Будет выполнена инкрементальная загрузка"); Исполнитель.ОжидаемЧтоВыводСодержит(ОбъединитьПути("Catalogs", "Справочник1.xml")); - Исполнитель.ОжидаемЧтоВыводСодержит("Информационная база обновлена из исходников"); Исполнитель.ОжидаемЧтоВыводСодержит("Обновление конфигурации БД завершено."); @@ -296,6 +270,7 @@ ЗаписатьТекст(lastUploadedCommit, ПоследнийКоммит); Исполнитель.УстановитьКонтекстИБИзФайловКонфигурации(КаталогИсходников); + Исполнитель.ВыгрузитьВФайлСостояниеКонфигурации(КаталогИсходников); Если ИзмененияСКоммитом Тогда ManagedApplicationModule = ОбъединитьПути(КаталогИсходников, "Ext", "ManagedApplicationModule.bsl"); diff --git "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\222\321\213\320\262\320\276\320\264\320\233\320\276\320\263\320\260.os" "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\222\321\213\320\262\320\276\320\264\320\233\320\276\320\263\320\260.os" index 4a3ed034..c82bef68 100644 --- "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\222\321\213\320\262\320\276\320\264\320\233\320\276\320\263\320\260.os" +++ "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\222\321\213\320\262\320\276\320\264\320\233\320\276\320\263\320\260.os" @@ -1,9 +1,18 @@ #Использовать tempfiles -Перем ТекстовыйДокумент; +#Область ОписаниеПеременных + +Перем ТекстовыйДокумент; // Экземпляр документа для хренения лога вывода. + +#КонецОбласти #Область ПрограммныйИнтерфейс +// Возвращает вывод лога +// +// Возвращаемое значение: +// Строка - Сожержимое лога +// Функция ВыводЛога() Экспорт Возврат ТекстовыйДокумент.ПолучитьТекст(); КонецФункции @@ -16,6 +25,7 @@ Сообщение = СобытиеЛога.ПолучитьФорматированноеСообщение(); ТекстовыйДокумент.ДобавитьСтроку(Сообщение); + Консоль.ВывестиСтроку(Сообщение); КонецПроцедуры @@ -24,6 +34,10 @@ // Устанавливает свойство аппендера, заданное в конфигурационном файле // +// Параметры: +// ИмяСвойства - Строка - Имя свойства +// Значение - Строка, Число, Булево - Значение свойства +// Процедура УстановитьСвойство(Знач ИмяСвойства, Знач Значение) Экспорт КонецПроцедуры // УстановитьСвойство() diff --git "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\276\320\274\320\260\320\275\320\264.os" "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\276\320\274\320\260\320\275\320\264.os" index ca0bc7aa..fb22b092 100644 --- "a/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\276\320\274\320\260\320\275\320\264.os" +++ "b/tests/xunits/utils/\320\232\320\273\320\260\321\201\321\201\321\213/\320\242\320\265\321\201\321\202_\320\230\321\201\320\277\320\276\320\273\320\275\320\270\321\202\320\265\320\273\321\214\320\232\320\276\320\274\320\260\320\275\320\264.os" @@ -1,15 +1,17 @@ #Использовать "../../../.." #Использовать cmdline #Использовать ibcmdrunner +#Использовать v8runner #Использовать asserts #Область ОписаниеПеременных -Перем Команда; -Перем Аргументы; -Перем СпособВывода; -Перем КаталогКоманды; -Перем УправлениеИБ; +Перем Команда; // Текущая команда приложения +Перем Аргументы; // Аргументы команды приложения +Перем СпособВывода; // Экземпляр вывода лога команды приложения +Перем КаталогКоманды; // Каталог в котором выполняется команда +Перем УправлениеИБ; // Экземпляр менеджера ibcmd +Перем УровеньЛога; // Уровень логирования #КонецОбласти @@ -28,13 +30,14 @@ Аргументы.Добавить(ИмяФлага); КонецПроцедуры -Процедура ВыполнитьКоманду() Экспорт +Функция ВыполнитьКоманду() Экспорт СистемнаяИнформация = Новый СистемнаяИнформация; ПараметрыСистемы.ЭтоWindows = Найти(ВРег(СистемнаяИнформация.ВерсияОС), "WINDOWS") > 0; ДобавитьПараметр("--root", КаталогКоманды); ДобавитьФлаг("--nocacheuse"); + ДобавитьПараметр("--language", "ru"); МенеджерКомандПриложения.РегистраторКоманд(ПараметрыСистемы); @@ -43,9 +46,21 @@ Парсер = Новый ПарсерАргументовКоманднойСтроки(); МенеджерКомандПриложения.ЗарегистрироватьКоманды(Парсер); ПараметрыКоманды = Парсер.Разобрать(Аргументы); - МенеджерКомандПриложения.ВыполнитьКоманду(Команда, ПараметрыКоманды.ЗначенияПараметров); -КонецПроцедуры + Сообщить(">>>"); + Сообщить("vrunner " + СтрСоединить(Аргументы, " ")); + Попытка + Результат = МенеджерКомандПриложения.ВыполнитьКоманду(Команда, ПараметрыКоманды.ЗначенияПараметров); + Исключение + Сообщить("<<<"); + ВызватьИсключение; + КонецПопытки; + + Сообщить("<<<"); + + Возврат Результат; + +КонецФункции Функция ЛогКоманды() Экспорт Возврат СпособВывода; @@ -90,6 +105,7 @@ КаталогПустойИБ = ОбъединитьПути(КаталогКоманды, "db-data"); УправлениеИБ = Новый УправлениеИБ; + УправлениеИБ.УстановитьПараметрыАвтономногоСервера(КаталогКоманды); УправлениеИБ.УстановитьПараметрыФайловойИБ(КаталогПустойИБ); УправлениеИБ.СоздатьИБИзФайлаВыгрузки(""); @@ -103,15 +119,19 @@ КаталогИБ = ОбъединитьПути(КаталогКоманды, "db-data"); УправлениеИБ = Новый УправлениеИБ; + УправлениеИБ.УстановитьПараметрыАвтономногоСервера(КаталогКоманды); УправлениеИБ.УстановитьПараметрыФайловойИБ(КаталогИБ); УправлениеИБ.СоздатьИБИзФайловКонфигурации(Каталог); - УправлениеИБ.ВыгрузитьВФайлСостояниеКонфигурации(Каталог); СтрокаСоединения = СтрШаблон("/F""%1""", КаталогИБ); ДобавитьПараметр("--ibconnection", СтрокаСоединения); КонецПроцедуры +Процедура ВыгрузитьВФайлСостояниеКонфигурации(Каталог) Экспорт + УправлениеИБ.ВыгрузитьВФайлСостояниеКонфигурации(Каталог); +КонецПроцедуры + Процедура СоздатьПустоеРасширение(ИмяРасширения, ПрефиксИмен) Экспорт УправлениеИБ.СоздатьРасширение(ИмяРасширения, ПрефиксИмен); КонецПроцедуры @@ -120,6 +140,33 @@ УправлениеИБ.ЗагрузитьКонфигурациюИзФайлов(КаталогИсходников, ИмяРасширения); КонецПроцедуры +Процедура ОбновитьКонфигурациюБазыДанных(ИмяРасширения = "") Экспорт + УправлениеИБ.ОбновитьКонфигурациюБазыДанных(ИмяРасширения); +КонецПроцедуры + +Процедура УстановитьУровеньЛога(Знач Уровень) Экспорт + УровеньЛога = Уровень; +КонецПроцедуры + +Процедура СобратьВнешнююОбработку(Знач КаталогИсходников, Знач ПутьКФайлуОбработки) Экспорт + + Если ФС.ФайлСуществует(ПутьКФайлуОбработки) Тогда + Возврат; + КонецЕсли; + + Конфигуратор = Новый УправлениеКонфигуратором(); + КаталогВременнойИБ = ВременныеФайлы.СоздатьКаталог(); + Конфигуратор.КаталогСборки(КаталогВременнойИБ); + + Параметры = Конфигуратор.ПолучитьПараметрыЗапуска(); + Параметры.Добавить("/LoadExternalDataProcessorOrReportFromFiles"); + Параметры.Добавить(ОбщиеМетоды.ОбернутьПутьВКавычки(КаталогИсходников)); + Параметры.Добавить(ОбщиеМетоды.ОбернутьПутьВКавычки(ПутьКФайлуОбработки)); + + Конфигуратор.ВыполнитьКоманду(Параметры); + +КонецПроцедуры + #КонецОбласти #Область ОбработчикиСобытий @@ -133,6 +180,7 @@ КаталогКоманды = ВременныеФайлы.СоздатьКаталог(); СпособВывода = Новый Тест_ВыводЛога(); + УровеньЛога = УровниЛога.Информация; КонецПроцедуры @@ -141,8 +189,13 @@ #Область СлужебныеПроцедурыИФункции Процедура ДобавитьСпособВывода(МенеджерКомандПриложения) + Лог = МенеджерКомандПриложения.Лог(); + + Лог.Закрыть(); Лог.ДобавитьСпособВывода(СпособВывода); + Лог.УстановитьУровень(УровеньЛога); + КонецПроцедуры #КонецОбласти diff --git a/tests/xunits/vanessa.os b/tests/xunits/vanessa.os new file mode 100644 index 00000000..a143f8d0 --- /dev/null +++ b/tests/xunits/vanessa.os @@ -0,0 +1,85 @@ +#Использовать asserts +#Использовать tempfiles +#Использовать "utils" +#Использовать "../.." + +#Область ОписаниеПеременных + +Перем НакопленныеВременныеФайлы; // фиксация накопленных времнных файлов для сброса + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +&Тест +Процедура ТестДолжен_ВыполнитьФичуПаузаIbsrv() Экспорт + + // Дано + Исполнитель = Новый Тест_ИсполнительКоманд("vanessa"); + + КаталогSrcCf = Исполнитель.ПутьТестовыхДанных("cf"); + Исполнитель.УстановитьКонтекстИБИзФайловКонфигурации(КаталогSrcCf); + Исполнитель.ОбновитьКонфигурациюБазыДанных(); + + ФайлНастроек = Исполнитель.ПутьТестовыхДанных("feature/vb-conf.json"); + ПутьКФичам = Исполнитель.ПутьТестовыхДанных("feature/Пауза"); + + Исполнитель.ДобавитьПараметр("--vanessasettings", ФайлНастроек); + Исполнитель.ДобавитьПараметр("--path", ПутьКФичам); + Исполнитель.ДобавитьФлаг("--ibsrv"); + + // Когда + Исполнитель.ВыполнитьКоманду(); + + // Тогда + Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv"); + Исполнитель.ОжидаемЧтоВыводСодержит("Все фичи/сценарии выполнены!"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыполнитьНереализованнуюФичуIbsrv() Экспорт + + // Дано + Исполнитель = Новый Тест_ИсполнительКоманд("vanessa"); + + КаталогSrcCf = Исполнитель.ПутьТестовыхДанных("cf"); + Исполнитель.УстановитьКонтекстИБИзФайловКонфигурации(КаталогSrcCf); + Исполнитель.ОбновитьКонфигурациюБазыДанных(); + + ФайлНастроек = Исполнитель.ПутьТестовыхДанных("feature/vb-conf.json"); + ПутьКФичам = Исполнитель.ПутьТестовыхДанных("feature/Без реализации шага"); + + Исполнитель.ДобавитьПараметр("--vanessasettings", ФайлНастроек); + Исполнитель.ДобавитьПараметр("--path", ПутьКФичам); + Исполнитель.ДобавитьФлаг("--ibsrv"); + + // Когда + Исполнитель.ВыполнитьКоманду(); + + // Тогда + Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv"); + Исполнитель.ОжидаемЧтоВыводСодержит("Все фичи/сценарии выполнены!"); + + // В текущем релизе add нет нужного вывода. + // Исполнитель.ОжидаемЧтоВыводСодержит("Пустой адрес снипета у шага: Когда я выполняю несуществующий шаг"); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытий + +Процедура ПередЗапускомТеста() Экспорт + + НакопленныеВременныеФайлы = ВременныеФайлы.Файлы(); + +КонецПроцедуры + +Процедура ПослеЗапускаТеста() Экспорт + + ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(НакопленныеВременныеФайлы); + +КонецПроцедуры + +#КонецОбласти diff --git a/tests/xunits/xunit.os b/tests/xunits/xunit.os new file mode 100644 index 00000000..1681c316 --- /dev/null +++ b/tests/xunits/xunit.os @@ -0,0 +1,90 @@ +#Использовать asserts +#Использовать tempfiles +#Использовать "utils" +#Использовать "../.." + +#Область ОписаниеПеременных + +Перем НакопленныеВременныеФайлы; // фиксация накопленных времнных файлов для сброса + +#КонецОбласти + +#Область СлужебныйПрограммныйИнтерфейс + +&Тест +Процедура ТестДолжен_ВыполнитьУспешноеТестированиеПроектаIbsrv() Экспорт + + // Дано + ИмяРасширения = "ТестOK"; + + Исполнитель = Новый Тест_ИсполнительКоманд("xunit"); + + КаталогSrcCf = Исполнитель.ПутьТестовыхДанных("cf"); + Исполнитель.УстановитьКонтекстИБИзФайловКонфигурации(КаталогSrcCf); + Исполнитель.ОбновитьКонфигурациюБазыДанных(); + + КаталогSrc = Исполнитель.ПутьТестовыхДанных("xdd_cfe_OK"); + Исполнитель.СоздатьРасширениеИзФайлов(ИмяРасширения, КаталогSrc); + Исполнитель.ОбновитьКонфигурациюБазыДанных(ИмяРасширения); + + Исполнитель.ДобавитьПараметр(ИмяРасширения); + Исполнитель.ДобавитьФлаг("--config-tests"); + Исполнитель.ДобавитьПараметр("--xddExitCodePath", "./exitCode.txt"); + Исполнитель.ДобавитьФлаг("--ibsrv"); + + // Когда + Исполнитель.ВыполнитьКоманду(); + + // Тогда + Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv"); + Исполнитель.ОжидаемЧтоВыводСодержит("Все тесты выполнены!"); + +КонецПроцедуры + +&Тест +Процедура ТестДолжен_ВыполнитьОшибочноеТестированиеПроектаIbsrv() Экспорт + + // Дано + ИмяРасширения = "ТестFAIL"; + + Исполнитель = Новый Тест_ИсполнительКоманд("xunit"); + + КаталогSrcCf = Исполнитель.ПутьТестовыхДанных("cf"); + Исполнитель.УстановитьКонтекстИБИзФайловКонфигурации(КаталогSrcCf); + Исполнитель.ОбновитьКонфигурациюБазыДанных(); + + КаталогSrc = Исполнитель.ПутьТестовыхДанных("xdd_cfe_FAIL"); + Исполнитель.СоздатьРасширениеИзФайлов(ИмяРасширения, КаталогSrc); + Исполнитель.ОбновитьКонфигурациюБазыДанных(ИмяРасширения); + + // Когда + Исполнитель.ДобавитьПараметр(ИмяРасширения); + Исполнитель.ДобавитьФлаг("--config-tests"); + Исполнитель.ДобавитьПараметр("--xddExitCodePath", "./exitCode.txt"); + Исполнитель.ДобавитьФлаг("--ibsrv"); + + // Тогда + Ожидаем.Что(Исполнитель) + .Метод("ВыполнитьКоманду") + .ВыбрасываетИсключение("Часть тестов упала!"); + Исполнитель.ОжидаемЧтоВыводСодержит("Используется ibsrv"); + +КонецПроцедуры + +#КонецОбласти + +#Область ОбработчикиСобытий + +Процедура ПередЗапускомТеста() Экспорт + + НакопленныеВременныеФайлы = ВременныеФайлы.Файлы(); + +КонецПроцедуры + +Процедура ПослеЗапускаТеста() Экспорт + + ВременныеФайлы.УдалитьНакопленныеВременныеФайлы(НакопленныеВременныеФайлы); + +КонецПроцедуры + +#КонецОбласти diff --git a/vanessa-runner-schema.json b/vanessa-runner-schema.json index 09427eab..f02684dd 100644 --- a/vanessa-runner-schema.json +++ b/vanessa-runner-schema.json @@ -1096,6 +1096,13 @@ "type": "boolean", "default": false }, + "--ibsrv": { + "description": "Запуск команды с использованием утилиты ibsrv", + "id": "/properties/xunit/--ibsrv", + "title": "The --ibsrv Schema", + "type": "boolean", + "default": false + }, "--ibconnection": { "description": "Строка подключения к БД (/FfilePath или /SserverPath)\n\tНапример, для файловых баз --ibconnection /FC:\\base1 или --ibconnection /F./base1 или --ibconnection /Fbase1\n\tИли для серверных баз --ibconnection /Sservername\\basename", "id": "/properties/xunit/--ibconnection", @@ -1272,6 +1279,13 @@ "type": "boolean", "default": false }, + "--ibsrv": { + "description": "Запуск команды с использованием утилиты ibsrv", + "id": "/properties/vanessa/--ibsrv", + "title": "The --ibsrv Schema", + "type": "boolean", + "default": false + }, "--ibconnection": { "description": "Строка подключения к БД (/FfilePath или /SserverPath)\n\tНапример, для файловых баз --ibconnection /FC:\\base1 или --ibconnection /F./base1 или --ibconnection /Fbase1\n\tИли для серверных баз --ibconnection /Sservername\\basename", "id": "/properties/vanessa/--ibconnection", @@ -1434,6 +1448,13 @@ "type": "string", "default": "" }, + "--ibsrv": { + "description": "Запуск команды с использованием утилиты ibsrv", + "id": "/properties/run/--ibsrv", + "title": "The --ibsrv Schema", + "type": "boolean", + "default": false + }, "--ibconnection": { "description": "Строка подключения к БД (/FfilePath или /SserverPath)\n\tНапример, для файловых баз --ibconnection /FC:\\base1 или --ibconnection /F./base1 или --ibconnection /Fbase1\n\tИли для серверных баз --ibconnection /Sservername\\basename", "id": "/properties/run/--ibconnection", @@ -1582,6 +1603,13 @@ "type": "string", "default": "" }, + "--ibsrv": { + "description": "Запуск команды с использованием утилиты ibsrv", + "id": "/properties/designer/--ibsrv", + "title": "The --ibsrv Schema", + "type": "boolean", + "default": false + }, "--ibconnection": { "description": "Строка подключения к БД (/FfilePath или /SserverPath)\n\tНапример, для файловых баз --ibconnection /FC:\\base1 или --ibconnection /F./base1 или --ibconnection /Fbase1\n\tИли для серверных баз --ibconnection /Sservername\\basename", "id": "/properties/designer/--ibconnection", @@ -8638,6 +8666,13 @@ "type": "boolean", "default": false }, + "--ibsrv": { + "description": "Запуск команды с использованием утилиты ibsrv", + "id": "/properties/default/--ibsrv", + "title": "The --ibsrv Schema", + "type": "boolean", + "default": false + }, "--path": { "description": "Путь для запуска тестов\nМожно указывать как каталог с фичами, так и конкретную фичу", "id": "/properties/default/--path",