From f635796b65107b0db006c06e85dbf07f7c0b84a8 Mon Sep 17 00:00:00 2001 From: BarinovIN <65981489+BarinovIN@users.noreply.github.com> Date: Wed, 26 Apr 2023 13:24:26 +0300 Subject: [PATCH 1/3] =?UTF-8?q?=D0=9F=D0=BE=D0=BB=D0=BD=D0=B0=D1=8F=20?= =?UTF-8?q?=D0=B8=D0=BD=D1=84=D0=BE=D1=80=D0=BC=D0=B0=D1=86=D0=B8=D1=8F=20?= =?UTF-8?q?=D0=BE=D0=B1=20=D0=B8=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=BF=D1=80=D0=B8=20=D0=B7=D0=B0=D0=B3=D1=80?= =?UTF-8?q?=D1=83=D0=B7=D0=BA=D0=B5=20=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2?= =?UTF-8?q?=20=D1=81=20=D0=B4=D1=8B=D0=BC=D0=BE=D0=B2=D1=8B=D0=BC=D0=B8=20?= =?UTF-8?q?=D1=82=D0=B5=D1=81=D1=82=D0=B0=D0=BC=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit #1095 --- .../Ext/Form/Module.bsl" | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git "a/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index e35e42de6..2411aa8ca 100644 --- "a/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -189,7 +189,25 @@ КонецЕсли; Исключение - Сообщить("Не удалось загрузить файл " + ФайлОбработки.ПолноеИмя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); + ШаблонСообщения = НСтр("ru = 'Не удалось загрузить файл %1 + |%2'"); + + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ПолныйТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); + КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); + + ПолныйТекстОшибки = КонтекстЯдра.СтрШаблон_(ШаблонСообщения, ФайлОбработки.ПолноеИмя, ПолныйТекстОшибки); + КраткийТекстОшибки = КонтекстЯдра.СтрШаблон_(ШаблонСообщения, ФайлОбработки.Имя, КраткийТекстОшибки); + + КонтекстЯдра.Отладка(ПолныйТекстОшибки); + КонтекстЯдра.ЗафиксироватьОшибкуВЖурналеРегистрации("ЗагрузкаТестов", ПолныйТекстОшибки); + КонтекстЯдра.ВывестиСообщение(КраткийТекстОшибки, СтатусСообщения.Внимание); + + // Тут достаточно взвести флаг ошибки для всех тестов целиком и продолжить, но непонятно как взвести флаг ошибки отсюда. + // Поэтому пока вызываем исключение. + // Лучше ведь починить и перезапустить, чем пропустить ошибку из-за незагруженного файла с тестами. + ВызватьИсключение; + Результат = Неопределено; КонецПопытки; From 9f0aaad002bb7606a34199813fe250321cce5bfa Mon Sep 17 00:00:00 2001 From: BarinovIN <65981489+BarinovIN@users.noreply.github.com> Date: Fri, 28 Apr 2023 10:56:25 +0300 Subject: [PATCH 2/3] =?UTF-8?q?=D0=A3=D0=B6=D0=B5=20=D0=BD=D1=83=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=20=D1=8E=D0=B7=D0=B0=D1=82=D1=8C=20=D0=BF=D1=80?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=BE=D0=B5=20=D0=A1=D1=82=D1=80=D0=A8=D0=B0?= =?UTF-8?q?=D0=B1=D0=BB=D0=BE=D0=BD=20=D0=B2=D0=BC=D0=B5=D1=81=D1=82=D0=BE?= =?UTF-8?q?=20=D0=9A=D0=BE=D0=BD=D1=82=D0=B5=D0=BA=D1=81=D1=82=D0=AF=D0=B4?= =?UTF-8?q?=D1=80=D0=B0.=D0=A1=D1=82=D1=80=D0=A8=D0=B0=D0=B1=D0=BB=D0=BE?= =?UTF-8?q?=D0=BD=5F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ext/Form/Module.bsl" | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git "a/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 2411aa8ca..d904967ee 100644 --- "a/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -196,8 +196,8 @@ ПолныйТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - ПолныйТекстОшибки = КонтекстЯдра.СтрШаблон_(ШаблонСообщения, ФайлОбработки.ПолноеИмя, ПолныйТекстОшибки); - КраткийТекстОшибки = КонтекстЯдра.СтрШаблон_(ШаблонСообщения, ФайлОбработки.Имя, КраткийТекстОшибки); + ПолныйТекстОшибки = СтрШаблон(ШаблонСообщения, ФайлОбработки.ПолноеИмя, ПолныйТекстОшибки); + КраткийТекстОшибки = СтрШаблон(ШаблонСообщения, ФайлОбработки.Имя, КраткийТекстОшибки); КонтекстЯдра.Отладка(ПолныйТекстОшибки); КонтекстЯдра.ЗафиксироватьОшибкуВЖурналеРегистрации("ЗагрузкаТестов", ПолныйТекстОшибки); From 6578936982d11ca2e66f7ffaeea6569bb2b2d20b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=B0=D1=80=D0=B8=D0=BD=D0=BE=D0=B2=20=D0=98=D0=BB?= =?UTF-8?q?=D1=8C=D1=8F?= Date: Wed, 30 Aug 2023 17:40:48 +0300 Subject: [PATCH 3/3] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=BD=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B8=20=D0=BF=D0=B5=D1=80=D0=B5=D1=85=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=20=D0=B8=D1=81=D0=BA=D0=BB=D1=8E=D1=87=D0=B5=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=B2=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7=D1=87=D0=B8?= =?UTF-8?q?=D0=BA=20=D1=84=D0=B0=D0=B9=D0=BB=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Перехват исключения фактически нужен "на будущее". Для возможности пропустить незагруженный файл и обработать остальные, но со статусом ошибки для тестов в целом. Пока установки такого статуса нету, поэтому будет вызвано исключение и все тесты не выполнятся. Для этих же целей дерево тестов нужно сформировать заранее, чтобы функция всегда его возвращала, после замены вызова исключения на установку статуса ошибки. Сейчас перехват исключения поможет быстро узнать имя файла, который не удалось загруить. см: #1095 --- .../Ext/Form/Module.bsl" | 34 ++-------- .../Ext/Form/Module.bsl" | 67 ++++++++++++------- 2 files changed, 49 insertions(+), 52 deletions(-) diff --git "a/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index d904967ee..22305ff0c 100644 --- "a/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\232\320\260\321\202\320\260\320\273\320\276\320\263\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -181,35 +181,11 @@ &НаКлиенте Функция ЗагрузитьФайл(КонтекстЯдра, ФайлОбработки) ЗагрузчикФайла = КонтекстЯдра.Плагин("ЗагрузчикФайла"); - Попытка - ДеревоТестовФайла = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработки.ПолноеИмя); - Результат = ДеревоТестовФайла; - Если ДеревоТестовФайла.Строки.Количество() > 0 Тогда - Результат = ДеревоТестовФайла.Строки[0]; - КонецЕсли; - - Исключение - ШаблонСообщения = НСтр("ru = 'Не удалось загрузить файл %1 - |%2'"); - - ИнформацияОбОшибке = ИнформацияОбОшибке(); - ПолныйТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); - КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - - ПолныйТекстОшибки = СтрШаблон(ШаблонСообщения, ФайлОбработки.ПолноеИмя, ПолныйТекстОшибки); - КраткийТекстОшибки = СтрШаблон(ШаблонСообщения, ФайлОбработки.Имя, КраткийТекстОшибки); - - КонтекстЯдра.Отладка(ПолныйТекстОшибки); - КонтекстЯдра.ЗафиксироватьОшибкуВЖурналеРегистрации("ЗагрузкаТестов", ПолныйТекстОшибки); - КонтекстЯдра.ВывестиСообщение(КраткийТекстОшибки, СтатусСообщения.Внимание); - - // Тут достаточно взвести флаг ошибки для всех тестов целиком и продолжить, но непонятно как взвести флаг ошибки отсюда. - // Поэтому пока вызываем исключение. - // Лучше ведь починить и перезапустить, чем пропустить ошибку из-за незагруженного файла с тестами. - ВызватьИсключение; - - Результат = Неопределено; - КонецПопытки; + ДеревоТестовФайла = ЗагрузчикФайла.Загрузить(КонтекстЯдра, ФайлОбработки.ПолноеИмя); + Результат = ДеревоТестовФайла; + Если ДеревоТестовФайла.Строки.Количество() > 0 Тогда + Результат = ДеревоТестовФайла.Строки[0]; + КонецЕсли; Возврат Результат; КонецФункции diff --git "a/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" "b/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" index 40bafd4f1..813e378c9 100644 --- "a/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" +++ "b/plugins/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/\320\227\320\260\320\263\321\200\321\203\320\267\321\207\320\270\320\272\320\244\320\260\320\271\320\273\320\260/Forms/\320\244\320\276\321\200\320\274\320\260/Ext/Form/Module.bsl" @@ -140,33 +140,54 @@ ПолноеИмяБраузераТестов = КонтекстЯдра.Объект.ПолноеИмяБраузераТестов; ПостроительДереваТестов = КонтекстЯдра.Плагин("ПостроительДереваТестов"); - ДеревоТестов = Неопределено; - Для Сч = 1 По СтрЧислоСтрок(Путь) Цикл - ФайлОбработки = Новый Файл(СтрПолучитьСтроку(Путь, Сч)); - ПроверитьКорректностьФайла(ФайлОбработки); + ИмяКонтейнера = СтрПолучитьСтроку(Путь, 1); + ДеревоТестов = ПостроительДереваТестов.СоздатьКонтейнер(ИмяКонтейнера); + Попытка + Для Сч = 1 По СтрЧислоСтрок(Путь) Цикл + ФайлОбработки = Новый Файл(СтрПолучитьСтроку(Путь, Сч)); + ПроверитьКорректностьФайла(ФайлОбработки); + + ПодключитьВнешнююОбработку(КонтекстЯдра, ФайлОбработки); + + ИмяОбработки = ""; + МассивСообщений = Неопределено; + + КонтейнерССервернымиТестамиОбработки = ЗагрузитьФайлНаСервере(ФайлОбработки.ПолноеИмя, ИмяОбработки, + КонтекстЯдра.Объект, МассивСообщений); + КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки, + КонтекстЯдра, ИмяОбработки); + Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда + КонтейнерССервернымиТестамиОбработки.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки); + КонецЕсли; + Если КонтейнерССервернымиТестамиОбработки.Строки.Количество() > 0 Тогда + ДеревоТестов.Строки.Добавить(КонтейнерССервернымиТестамиОбработки); + КонецЕсли; + + КонтекстЯдра.ВывестиНакопленныеСообщенияОтСервераВРежимеОтладки(МассивСообщений); + КонецЦикла; - Если ДеревоТестов = Неопределено Тогда - ДеревоТестов = ПостроительДереваТестов.СоздатьКонтейнер(ФайлОбработки.Путь); - КонецЕсли; + Исключение - ПодключитьВнешнююОбработку(КонтекстЯдра, ФайлОбработки); + ШаблонСообщения = НСтр("ru = 'Не удалось загрузить файл %1 + |%2'"); - ИмяОбработки = ""; - МассивСообщений = Неопределено; - - КонтейнерССервернымиТестамиОбработки = ЗагрузитьФайлНаСервере(ФайлОбработки.ПолноеИмя, ИмяОбработки, - КонтекстЯдра.Объект, МассивСообщений); - КонтейнерСКлиентскимиТестамиОбработки = ЗагрузитьФайлНаКлиенте(ПостроительДереваТестов, ФайлОбработки, - КонтекстЯдра, ИмяОбработки); - Если КонтейнерСКлиентскимиТестамиОбработки.Строки.Количество() > 0 Тогда - КонтейнерССервернымиТестамиОбработки.Строки.Добавить(КонтейнерСКлиентскимиТестамиОбработки); - КонецЕсли; - Если КонтейнерССервернымиТестамиОбработки.Строки.Количество() > 0 Тогда - ДеревоТестов.Строки.Добавить(КонтейнерССервернымиТестамиОбработки); - КонецЕсли; + ИнформацияОбОшибке = ИнформацияОбОшибке(); + ПолныйТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке); + КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке); - КонтекстЯдра.ВывестиНакопленныеСообщенияОтСервераВРежимеОтладки(МассивСообщений); - КонецЦикла; + ПолныйТекстОшибки = СтрШаблон(ШаблонСообщения, Путь, ПолныйТекстОшибки); + КраткийТекстОшибки = СтрШаблон(ШаблонСообщения, Путь, КраткийТекстОшибки); + + КонтекстЯдра.Отладка(ПолныйТекстОшибки); + КонтекстЯдра.ЗафиксироватьОшибкуВЖурналеРегистрации("ЗагрузкаТестов", ПолныйТекстОшибки); + КонтекстЯдра.ВывестиСообщение(КраткийТекстОшибки, СтатусСообщения.Внимание); + + // Тут достаточно взвести флаг ошибки для всех тестов целиком и продолжить, но непонятно как взвести флаг ошибки отсюда. + // Поэтому пока вызываем исключение. + // Лучше ведь починить и перезапустить, чем пропустить ошибку из-за незагруженного файла с тестами. + ВызватьИсключение; + + КонецПопытки; Возврат ДеревоТестов; КонецФункции