Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Полная информация об исключении при загрузке файлов с дымовыми тестами в случае конфигурации с поддержкой синхронности #1096

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from
Original file line number Diff line number Diff line change
Expand Up @@ -189,7 +189,25 @@
КонецЕсли;

Исключение
Сообщить("Не удалось загрузить файл " + ФайлОбработки.ПолноеИмя + Символы.ПС + ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
ШаблонСообщения = НСтр("ru = 'Не удалось загрузить файл %1
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

остается главный вопрос - почему исправление сделано в Загрузчике каталога, а не в загрузчике файла?

1 ведь основную работу выполняет именно загрузчик файла

2 и в коде обработчика из ПР используются те же данные, что передаются в загрузчик файла - полное имя файла

Предлагаю перенести код Попытки-Исключение в метод Загрузить загрузчика файлов

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@BarinovIN а в целом я с исправлением согласен, только нужно код перенести в загрузчик файла и тогда я смержу.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Исправление сделал там, где было необработанное исключение, добавил его полноценную обработку.
Другой вариант исправления - убрать перехват исключения. Он же только сообщение об ошибке уточняет - это не обязательно.
Необходим ли перехват исключения в загрузчике файла?

Итого, предлагаю совсем убрать перехват исключения отсюда, но и в загрузчик файла не добавлять его.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Перенёс перехват исключения в загрузчик файла.

|%2'");

ИнформацияОбОшибке = ИнформацияОбОшибке();
ПолныйТекстОшибки = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке);
КраткийТекстОшибки = КраткоеПредставлениеОшибки(ИнформацияОбОшибке);

ПолныйТекстОшибки = СтрШаблон(ШаблонСообщения, ФайлОбработки.ПолноеИмя, ПолныйТекстОшибки);
КраткийТекстОшибки = СтрШаблон(ШаблонСообщения, ФайлОбработки.Имя, КраткийТекстОшибки);

КонтекстЯдра.Отладка(ПолныйТекстОшибки);
КонтекстЯдра.ЗафиксироватьОшибкуВЖурналеРегистрации("ЗагрузкаТестов", ПолныйТекстОшибки);
КонтекстЯдра.ВывестиСообщение(КраткийТекстОшибки, СтатусСообщения.Внимание);

// Тут достаточно взвести флаг ошибки для всех тестов целиком и продолжить, но непонятно как взвести флаг ошибки отсюда.
// Поэтому пока вызываем исключение.
// Лучше ведь починить и перезапустить, чем пропустить ошибку из-за незагруженного файла с тестами.
ВызватьИсключение;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

проверял в пакетном режиме?

имхо при вызове исключения здесь основной фреймворк тестирования может упасть,
а тогда сеанс 1С просто зависнет и останется в памяти, не завершившись.

а что происходит в интерактивном режиме?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

В пакетном режиме.

Выводится сообщение:

Ошибка загрузки и выполнения тестов в пакетном режиме
И дальше подробная информация об ошибке

Менеджер тестирования завершается, а клиент действительно остаётся открыт. Но так он может оставаться и из-за других исключений.
Срабатывает вот этот перехват исключения, возможно в нём стоит добавить закрытие клиентов тестирования так же, как вот здесь. Тогда ничего зависшего оставаться не будет.

В интерактивном режиме.

Фреймворк не закрывается, появляется два сообщения.

  • Короткое:
Не удалось загрузить файл ИмяФайла.epf
Причина исключения
  • И подробное описание ошибки со стеком вызовов.

Итого

По-моему поведение приемлемое. Но как я уже писал, исключение в этой строке хотелось бы убрать, заменив на установку статуса ошибки для тестов в целом.


Результат = Неопределено;
КонецПопытки;

Expand Down