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

Показываю лог от 1С, если не найден файл статуса #407

Merged
merged 2 commits into from
Oct 23, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 51 additions & 0 deletions features/ПроверкаТестов.feature
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@
И Я добавляю параметр "--xddExitCodePath ./build/xddExitCodePath.txt" для команды "oscript"
И Я добавляю параметр "--language ru" для команды "oscript"
Когда Я выполняю команду "oscript"
И Я сообщаю вывод команды "oscript"
Тогда Вывод команды "oscript" содержит
| -->> тест ТестДолжен_Упасть |
| Выполняю тесты с помощью фреймворка Vanessa-ADD (Vanessa Automation Driven Development) |
Expand Down Expand Up @@ -126,6 +127,7 @@
И Я добавляю параметр "--xddExitCodePath ./build/xddExitCodePath.txt" для команды "oscript"
И Я добавляю параметр "--language ru" для команды "oscript"
Когда Я выполняю команду "oscript"
И Я сообщаю вывод команды "oscript"
Тогда Вывод команды "oscript" содержит
| -->> тест ТестДолжен_БытьПропущен |
| Выполняю тесты с помощью фреймворка Vanessa-ADD (Vanessa Automation Driven Development) |
Expand All @@ -135,3 +137,52 @@

И Код возврата команды "oscript" равен 0
# И Код возврата команды "oscript" равен 2

Сценарий: Проверка исключения и показа лога от 1С, когда еще не успел выполниться браузер тестов

# И Я сохраняю значение "DEBUG" в переменную окружения "LOGOS_LEVEL"

И Я копирую каталог "fixture-epf/fixture" из каталога "tests/fixtures" проекта в подкаталог "build" рабочего каталога
Дано я создаю каталог "build/fixture/Тест1/Forms/Форма/Ext/Form" в рабочем каталоге

Дано Я создаю файл "build/fixture/Тест1/Forms/Форма/Ext/Form/Module.bsl" с текстом
"""
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Сообщить("хочу видеть сообщение в логе выполнения - Сообщить");
ПодключитьОбработчикОжидания("ОБработчикОжиданимя", 0.5, Истина);
КонецПроцедуры

&НаКлиенте
Процедура ОБработчикОжиданимя()
Сообщить("хочу видеть сообщение в логе выполнения - Сообщить 2");
ЗавершитьРаботуСистемы(Ложь);
КонецПроцедуры
"""

И файл "fixture/Тест1.epf" не существует
Дано Я очищаю параметры команды "oscript" в контексте
Когда Я выполняю команду "oscript" с параметрами "<КаталогПроекта>/src/main.os compileepf build/fixture build --language ru"
И файл "build/Тест1.epf" существует
И Код возврата команды "oscript" равен 0
И Я очищаю параметры команды "oscript" в контексте

Когда Я добавляю параметр "<КаталогПроекта>/src/main.os xunit" для команды "oscript"
И Я добавляю параметр "build/Тест1.epf" для команды "oscript"
И Я добавляю параметр "--ibconnection /Fbuild/ib" для команды "oscript"
И Я добавляю параметр "--workspace ./build" для команды "oscript"
И Я добавляю параметр "--pathxunit build/Тест1.epf" для команды "oscript"
И Я добавляю параметр "--xddConfig build/xUnitParams.json" для команды "oscript"
И Я добавляю параметр "--xddExitCodePath ./build/xddExitCodePath.txt" для команды "oscript"
И Я добавляю параметр "--language ru" для команды "oscript"
Когда Я выполняю команду "oscript"
И Я сообщаю вывод команды "oscript"
Тогда Вывод команды "oscript" содержит
| Управляемое приложение |
| Обработка Тест1 |
| хочу видеть сообщение в логе выполнения - Сообщить |
| хочу видеть сообщение в логе выполнения - Сообщить 2 |
| Выполняю тесты с помощью фреймворка Vanessa-ADD (Vanessa Automation Driven Development) |
| Получен неожиданный/неверный результат работы - Не найден файл статуса |

И Код возврата команды "oscript" равен 1
48 changes: 31 additions & 17 deletions src/Классы/МенеджерКонфигуратора.os
Original file line number Diff line number Diff line change
Expand Up @@ -259,9 +259,11 @@
ОбщиеМетоды.УдалитьФайлЕслиОнСуществует(ПутьЛогаВыполненияСценариев);
КонецЕсли;

ЛогОт1С = "";

Попытка
Если ОжидатьЗавершения Тогда
ЗапуститьВРежимеПредприятияСЛогФайлом(
ЛогОт1С = ЗапуститьВРежимеПредприятияСЛогФайлом(
ПараметрЗапуска, ОбработкаДляЗапуска,
ПутьЛогаВыполненияСценариев,
ТолстыйКлиент, ДополнительныеКлючиЗапуска, ДопСообщения);
Expand All @@ -272,28 +274,33 @@
КонецЕсли;

Исключение
Лог.Ошибка("Причина ошибки:" + ИнформацияОбОшибке().Описание);
Лог.Ошибка("Причина ошибки:
|%1
|Вывод от 1С:Предприятие:
|%2", ИнформацияОбОшибке().Описание, ЛогОт1С);
ВызватьИсключение;
КонецПопытки;

Если ЗначениеЗаполнено(ПутьКФайлуСтатусаВыполнения) Тогда
Результат = СокрЛП(ОбщиеМетоды.ПрочитатьФайлИнформации(ПутьКФайлуСтатусаВыполнения));
Лог.Отладка("Код возврата %1", Результат);
Если Результат = "0" Тогда
СтатусВозврата = СокрЛП(ОбщиеМетоды.ПрочитатьФайлИнформации(ПутьКФайлуСтатусаВыполнения));
Лог.Отладка("Код возврата %1", СтатусВозврата);
Если СтатусВозврата = "0" Тогда
Лог.Информация(ДопСообщения.СообщениеВСлучаеУспеха);
ИначеЕсли Результат = "1" Тогда
ИначеЕсли СтатусВозврата = "1" Тогда
ДанныеОшибки = Новый Структура;
ДанныеОшибки.Вставить("Предупреждение", "
|Vanessa-ADD или 1С:Предприятие вернуло код возврата 1
|");
ВызватьИсключение Новый ИнформацияОбОшибке(ДопСообщения.СообщениеВСлучаеПадения, ДанныеОшибки);

ИначеЕсли Результат = "2" Тогда
ИначеЕсли СтатусВозврата = "2" Тогда
Лог.Предупреждение(ДопСообщения.СообщениеВСлучаеПропуска);
Иначе
ТекстОшибки = СтрШаблон("Получен неожиданный/неверный результат работы - %1
|Возможна, работа 1С:Предприятие завершилась некорректно. Например, указана неверная версия платформы.
|Или возникла ошибка при запуске. Проверьте журнал регистрации в ИБ.", Результат);
|Или возникла ошибка при запуске. Проверьте журнал регистрации в ИБ.
|Вывод от 1С:Предприятие:
|%2", СтатусВозврата, ЛогОт1С);
ДанныеОшибки = Новый Структура;
ДанныеОшибки.Вставить("Предупреждение", "");
ВызватьИсключение Новый ИнформацияОбОшибке(ТекстОшибки, ДанныеОшибки);
Expand Down Expand Up @@ -367,7 +374,7 @@
// ТолстыйКлиент - Булево, Неопределено - признак запуска толстого клиента
// ДополнительныеКлючиЗапуска - <Строка> - <описание параметра>
//
Процедура ЗапуститьВРежимеПредприятияСЛогФайлом(Знач ПараметрЗапуска,
Функция ЗапуститьВРежимеПредприятияСЛогФайлом(Знач ПараметрЗапуска,
Знач ОбработкаДляЗапуска,
Знач ПутьЛогаВыполненияСценариев,
Знач ТолстыйКлиент,
Expand All @@ -376,6 +383,8 @@

Лог.Информация("Выполняю команду/действие в режиме 1С:Предприятие");

Результат = "";

ТекущаяПроцедура = "ЗапуститьВРежимеПредприятияСЛогФайлом";

УправлениеКонфигуратором.УстановитьПризнакОжиданияВыполненияПрограммы(Истина);
Expand Down Expand Up @@ -424,19 +433,21 @@

Попытка
ЗапуститьПроцесс1С(Приложение, ПутьЛогаВыполненияСценариев );
ПоказатьЛогПредприятия(ПутьДамп, ДопСообщения.ПоказыватьДополнительноЛогПредприятия);
Результат = ПоказатьЛогПредприятия(ПутьДамп, ДопСообщения.ПоказыватьДополнительноЛогПредприятия);

Исключение
ОписаниеОшибки = ОписаниеОшибки();

ПоказатьЛогПредприятия(ПутьДамп, Истина);
Результат = ПоказатьЛогПредприятия(ПутьДамп, Истина);

Лог.Ошибка(ОписаниеОшибки);
ВызватьИсключение ТекущаяПроцедура;
КонецПопытки;

Лог.Информация("Выполнение команды/действия в режиме 1С:Предприятие завершено.");
КонецПроцедуры

Возврат Результат;
КонецФункции

Процедура ЗапуститьПроцесс1С(Знач СтрокаЗапуска, Знач ПутьКФайлуЛога)

Expand Down Expand Up @@ -508,14 +519,15 @@
Возврат Массив;
КонецФункции // ПолучитьНовыеСтрокиЛога

Процедура ПоказатьЛогПредприятия(Знач ПутьДамп, Знач ПоказыватьДополнительноЛогПредприятия)
Функция ПоказатьЛогПредприятия(Знач ПутьДамп, Знач ПоказыватьДополнительноЛогПредприятия)
Результат = "";
Если ФС.Существует(ПутьДамп) Тогда
Текст = ОбщиеМетоды.ПрочитатьФайл(ПутьДамп, КодировкаТекста.ANSI);
Результат = ОбщиеМетоды.ПрочитатьФайл(ПутьДамп, КодировкаТекста.ANSI);

Если Не ПустаяСтрока(Текст) Тогда
Если Не ПустаяСтрока(Результат) Тогда
Сообщение = СтрШаблон("Дополнительный лог выполнения 1С:Предприятие
|
|%1", Текст);
|%1", Результат);
Если ПоказыватьДополнительноЛогПредприятия Тогда
Лог.Информация(Сообщение);
Иначе
Expand All @@ -526,7 +538,9 @@
Лог.Отладка("Не существует файл вывода от 1С - %1", ПутьДамп);
КонецЕсли;

КонецПроцедуры
Возврат Результат;

КонецФункции

// <Описание процедуры>
//
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<Form xmlns="http://v8.1c.ru/8.3/xcf/logform" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:dcscor="http://v8.1c.ru/8.1/data-composition-system/core" xmlns:dcsset="http://v8.1c.ru/8.1/data-composition-system/settings" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4">
<AutoCommandBar name="" id="-1"/>
<AutoCommandBar name="ФормаКоманднаяПанель" id="-1"/>
<Events>
<Event name="OnOpen">ПриОткрытии</Event>
</Events>
<ChildItems>
<InputField name="Реквизит1" id="1">
<DataPath>Объект.Реквизит1</DataPath>
Expand Down