Skip to content

Commit

Permalink
Merge pull request #81 from silverbulleters/feature/logfile-75
Browse files Browse the repository at this point in the history
WIP: Вывод лога тестирования xUnit в лог-файл
  • Loading branch information
artbear committed Apr 13, 2018
2 parents 1fc7807 + dc4a0fb commit bb961d9
Show file tree
Hide file tree
Showing 19 changed files with 874 additions and 124 deletions.
9 changes: 4 additions & 5 deletions .github/ISSUE_TEMPLATE.md
Expand Up @@ -6,15 +6,14 @@
Я хочу <Необходимый функционал>
Контекст:
Дано: <версия инструментария>
Дано <версия инструментария>
И <полная версия 1С>
и <конфигурация запуска>
Сценарий: <ожидамое поведение>
Допустим: <Пример данных>
Когда: <Что-то нажимается или вызывается>
Тогда: <Что-то происходит>
Допустим <Пример данных>
Когда <Что-то нажимается или вызывается>
Тогда <Что-то происходит>
```

> Прикладывайте файлы скриншотов
2 changes: 1 addition & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Expand Up @@ -6,4 +6,4 @@
-
-

@silverbulleters/collaborator - просьба прокомментировать и проверить
@silverbulleters/Collaborators - просьба прокомментировать и проверить
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -22,3 +22,4 @@ tools/ScreenShotsTest/
*.tar.bz2
*.tar
allure-report/
tools/JSON/env.json.file
Expand Up @@ -2146,9 +2146,14 @@
КонецЕсли;

Если Объект.ДелатьЛогВыполненияСценариевВТекстовыйФайл Тогда
Если ФайлСуществуетКомандаСистемы(ПреобразоватьПутьСТочкамиКНормальномуПути(Объект.ИмяФайлаЛогВыполненияСценариев)) Тогда
УдалитьФайлыКомандаСистемы(ПреобразоватьПутьСТочкамиКНормальномуПути(Объект.ИмяФайлаЛогВыполненияСценариев));
КонецЕсли;
ПутьФайлаЛогВыполненияСценариев = ПреобразоватьПутьСТочкамиКНормальномуПути(Объект.ИмяФайлаЛогВыполненияСценариев);
Если ФайлСуществуетКомандаСистемы(ПутьФайлаЛогВыполненияСценариев) Тогда
УдалитьФайлыКомандаСистемы(ПутьФайлаЛогВыполненияСценариев);
КонецЕсли;

ПлагинВыводВЛогФайл = Плагин("ВыводВЛогФайл");
ПлагинВыводВЛогФайл.ОткрытьФайл(ПутьФайлаЛогВыполненияСценариев);

КонецЕсли;

Если Объект.ДелатьЛогОшибокВТекстовыйФайл Тогда
Expand Down Expand Up @@ -4068,25 +4073,18 @@
//
// Скрипты, которые входят в комплект VB позволяют читать этот файл на CI в реальном времени.
// Это позволяет видеть на CI какой сценарий сейчас выполняется.
//
// Параметры:
// Сообщение - Строка - выводимое сообщение
//
&НаКлиенте
Процедура ЗаписатьСтрокуВТекстовыйЛог(Стр) Экспорт
Процедура ЗаписатьСтрокуВТекстовыйЛог(Знач Сообщение) Экспорт
Если Не Объект.ДелатьЛогВыполненияСценариевВТекстовыйФайл Тогда
Возврат;
КонецЕсли;

Если НЕ ЗначениеЗаполнено(Объект.ИмяФайлаЛогВыполненияСценариев) Тогда
ВызватьИсключение "Не указано имя файла лога в параметре <ИмяФайлаЛогВыполненияСценариев>";
КонецЕсли;

ИмяФайла = Объект.ИмяФайлаЛогВыполненияСценариев;

Попытка
ЗТ = Новый ЗаписьТекста(ИмяФайла, "UTF-8", , Истина);
ЗТ.ЗаписатьСтроку(Стр);
ЗТ.Закрыть();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;

ПлагинВыводВЛогФайл = Плагин("ВыводВЛогФайл");
ПлагинВыводВЛогФайл.Вывести(Сообщение);

КонецПроцедуры

Expand Down Expand Up @@ -10500,9 +10498,7 @@
ТекстСообщения = СтрЗаменить(ТекстСообщения,"%1",ТекШаг.Имя);
ОписаниеОшибки = ТекстСообщения;

Если Объект.ДелатьЛогВыполненияСценариевВТекстовыйФайл Тогда
ЗаписатьСтрокуВТекстовыйЛог("Pending: " + ОписаниеОшибки);
КонецЕсли;
ЗаписатьСтрокуВТекстовыйЛог("Pending: " + ОписаниеОшибки);

Если Объект.ПриравниватьPendingКFailed Тогда
СтатусЗапускаСценариев = Ложь;
Expand Down Expand Up @@ -10530,9 +10526,7 @@
СтрокаСценария.Статус = "Failed";
РезультатПрохожденияТестовСценария.Вставить("ОписаниеОшибки", ОписаниеОшибки);

Если Объект.ДелатьЛогВыполненияСценариевВТекстовыйФайл Тогда
ЗаписатьСтрокуВТекстовыйЛог("Failed: " + ОписаниеОшибки);
КонецЕсли;
ЗаписатьСтрокуВТекстовыйЛог("Failed: " + ОписаниеОшибки);

ПроверитьФлагОстановкаПриВозникновенииОшибки();
КонецЕсли;
Expand Down Expand Up @@ -10682,9 +10676,7 @@
СтрОшибка = "Не реализовано.";
ШагНеРеализован = Истина;

Если Объект.ДелатьЛогВыполненияСценариевВТекстовыйФайл Тогда
ЗаписатьСтрокуВТекстовыйЛог("Pending: " + ТекстСообщения);
КонецЕсли;
ЗаписатьСтрокуВТекстовыйЛог("Pending: " + ТекстСообщения);

ОстановитьЗаписьВидеоОдногоШага();

Expand Down Expand Up @@ -10798,10 +10790,8 @@
СтрокаСценария.Статус = "Failed";
РезультатПрохожденияТестовСценария.Вставить("ОписаниеОшибки", ОписаниеОшибки);

Если Объект.ДелатьЛогВыполненияСценариевВТекстовыйФайл Тогда
ЗаписатьСтрокуВТекстовыйЛог("Ошибка в процедуре ПередОкончаниемСценария().");
ЗаписатьСтрокуВТекстовыйЛог("Описание ошибки: " + ОписаниеОшибки);
КонецЕсли;
ЗаписатьСтрокуВТекстовыйЛог("Ошибка в процедуре ПередОкончаниемСценария().");
ЗаписатьСтрокуВТекстовыйЛог("Описание ошибки: " + ОписаниеОшибки);

ПроверитьФлагОстановкаПриВозникновенииОшибки();
КонецЕсли;
Expand Down Expand Up @@ -11219,10 +11209,7 @@
ЗаписатьЛогОшибки(СтрокаСценария,СтрокаШага,ОписаниеОшибки,ИнфоОбОшибке,ОписаниеОшибкиШага);
КонецЕсли;


Если Объект.ДелатьЛогВыполненияСценариевВТекстовыйФайл Тогда
ЗаписатьСтрокуВТекстовыйЛог("Failed: " + ОписаниеОшибки);
КонецЕсли;
ЗаписатьСтрокуВТекстовыйЛог("Failed: " + ОписаниеОшибки);

БылаОшибка = Ложь;
ОписаниеОшибки = "";
Expand Down Expand Up @@ -11353,9 +11340,7 @@
СтрокаСценария.Статус = "Failed";
РезультатПрохожденияТестовСценария.Вставить("ОписаниеОшибки", ОписаниеОшибки);

Если Объект.ДелатьЛогВыполненияСценариевВТекстовыйФайл Тогда
ЗаписатьСтрокуВТекстовыйЛог("Failed: " + ОписаниеОшибки);
КонецЕсли;
ЗаписатьСтрокуВТекстовыйЛог("Failed: " + ОписаниеОшибки);
КонецЕсли;

ОстановитьЗаписьВидеоОдногоШага();
Expand Down Expand Up @@ -16096,10 +16081,9 @@
Если Объект.ДелатьЛогВыполненияСценариевВЖР Тогда
ЗаписатьЛогВЖРИнформация("ПодключениеTestClient", "порт=" + Формат(ДанныеЗапускаКлиентаТестирования.ПортЗапускаТестКлиента, "ЧГ="));
КонецЕсли;
Если Объект.ДелатьЛогВыполненияСценариевВТекстовыйФайл Тогда
ЗаписатьЛогВТекстИнформация("ПодключениеTestClient", "порт=" + Формат(ДанныеЗапускаКлиентаТестирования.ПортЗапускаТестКлиента, "ЧГ="));
КонецЕсли;


ЗаписатьЛогВТекстИнформация("ПодключениеTestClient", "порт=" + Формат(ДанныеЗапускаКлиентаТестирования.ПортЗапускаТестКлиента, "ЧГ="));

ЗаполнитьКонтекстСохраняемыйДляТестовоеПриложение(ТестовоеПриложение);

Исключение
Expand Down
144 changes: 144 additions & 0 deletions epf/xddTestRunner/xddTestRunner.xml
Expand Up @@ -498,6 +498,150 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="1d3153f7-0b83-4379-aa30-5f72fa254e83">
<Properties>
<Name>ВыводитьЛогВыполненияСценариевВТекстовыйФайл</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Выводить лог выполнения сценариев в текстовый файл</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="f3a63529-6614-4564-892a-568e8071e857">
<Properties>
<Name>ИмяФайлаЛогВыполненияСценариев</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Имя файла лог выполнения сценариев</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="9d750252-1380-47a3-bd7c-e271275dba40">
<Properties>
<Name>ФлагОтладки</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Флаг отладки</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:boolean</v8:Type>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="7d763603-4d66-4c2a-b9a6-535ef094168f">
<Properties>
<Name>КаталогПроекта</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Каталог проекта</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:string</v8:Type>
<v8:StringQualifiers>
<v8:Length>0</v8:Length>
<v8:AllowedLength>Variable</v8:AllowedLength>
</v8:StringQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Form>Форма</Form>
<Form>УправляемаяФорма</Form>
</ChildObjects>
Expand Down
26 changes: 26 additions & 0 deletions epf/xddTestRunner/xddTestRunner/Ext/ObjectModule.bsl
Expand Up @@ -106,6 +106,10 @@
КонецЕсли;

ПутьИзКонтейнера = КонтейнерДереваТестов.Путь;

ВывестиСообщениеВЛогФайл("");
ВывестиСообщениеВЛогФайл(". ==>> набор тестов " + КонтейнерДереваТестов.Имя);

Если ПутьИзКонтейнера <> "" Тогда
КонтекстВыполненияДляКонтейнера = Загрузчик.ПолучитьКонтекстПоПути(ЭтотОбъект, ПутьИзКонтейнера);
КонецЕсли;
Expand All @@ -122,6 +126,9 @@
ДочернийРезультатТестирования = ВыполнитьТесты(Загрузчик, ДочернийУзел, ФильтрДляДочернихУзлов, Подписчик);
ИначеЕсли ДочернийУзел.Тип = ЭтотОбъект.ТипыУзловДереваТестов.Элемент Тогда
Если УзелДереваТестовУдовлетворяетФильтру(ДочернийУзел, ФильтрДляДочернихУзлов) Тогда

ВывестиСообщениеВЛогФайл(". -->> тест " + ДочернийУзел.Представление);

Если ПутьИзКонтейнера = ДочернийУзел.Путь Тогда
Контекст = КонтекстВыполненияДляКонтейнера;
Иначе
Expand Down Expand Up @@ -496,8 +503,27 @@

Сообщить(ТекстСообщения, Статус);

ВывестиСообщениеВЛогФайл(ТекстСообщения);

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

Процедура ВывестиСообщениеВЛогФайл(Знач Сообщение) Экспорт

Если ВыводитьЛогВыполненияСценариевВТекстовыйФайл Тогда

ПлагинВыводВЛогФайл = Плагин("ВыводВЛогФайл");
ПлагинВыводВЛогФайл.Вывести(Сообщение);

КонецЕсли;

КонецПроцедуры

Процедура Отладка(Знач Сообщение) Экспорт
Если ФлагОтладки Тогда
ВывестиСообщение(Сообщение);
КонецЕсли;
КонецПроцедуры

// { Helpers
Функция ВозможныеИсключения()
ВозможныеИсключения = Новый Структура;
Expand Down

0 comments on commit bb961d9

Please sign in to comment.