1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-02-10 19:41:26 +02:00

#61 Вывод тегов в junit

This commit is contained in:
Aleksey Ko 2024-05-14 21:23:28 +03:00
parent c23423d910
commit e6073ce0d5
9 changed files with 105 additions and 28 deletions

View File

@ -445,6 +445,15 @@
КонецФункции
// Создает структуру из массива.
// Ключами будут элементы массива, а значением каждого элемента струтуруы - параметр `ЗначениеСтруктуры`
//
// Параметры:
// Значения - Массив из Строка
// ЗначениеСтруктуры - Произвольный
//
// Возвращаемое значение:
// Структура
Функция МассивВСтруктуру(Значения, ЗначениеСтруктуры = Неопределено) Экспорт
Результат = Новый Структура();
@ -454,9 +463,7 @@
КонецЕсли;
Для Каждого Значение Из Значения Цикл
Результат.Вставить(Значение, ЗначениеСтруктуры);
КонецЦикла;
Возврат Результат;

View File

@ -80,8 +80,7 @@
ПредставлениеРежима = СтрШаблон(" [%1]", РезультатТеста.Режим);
ПолныйИдентификаторТеста = СтрШаблон("%1_%2_%3", РезультатТеста.НомерВНаборе, РезультатТеста.ПолноеИмяМетода, РезультатТеста.Режим);
Теги = ЮТКоллекции.ОбъединитьМассивы(Модуль.Теги, Набор.Теги, РезультатТеста.Теги);
Теги = ЮТСтроки.УникальныеСтроки(Теги);
Теги = ЮТОтчетСлужебныйКлиентСервер.УникальныеТеги(Модуль, Набор, РезультатТеста);
Описание = НовыйОписаниеТеста();
Описание.fullName = РезультатТеста.ПолноеИмяМетода + ПредставлениеРежима;

View File

@ -71,7 +71,7 @@
Для Каждого Набор Из Модуль.НаборыТестов Цикл
ЗаписатьНабор(ЗаписьXML, Набор, Номер);
ЗаписатьНабор(ЗаписьXML, Модуль, Набор, Номер);
Номер = Номер + 1;
КонецЦикла;
@ -172,11 +172,14 @@
КонецЕсли;
ЗаписатьСвойства(ЗаписьXML, Новый Структура, РезультатТеста.Теги);
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецПроцедуры
Процедура ЗаписатьОшибку(ЗаписьXML, ОписаниеОшибки)
Сообщение = СообщениеОбОшибке(ОписаниеОшибки);
ЗаписьXML.ЗаписатьНачалоЭлемента("error");
Если Сообщение <> Неопределено Тогда
@ -192,9 +195,10 @@
КонецЕсли;
ЗаписьXML.ЗаписатьКонецЭлемента();
КонецПроцедуры
Процедура ЗаписатьНабор(ЗаписьXML, Набор, Номер)
Процедура ЗаписатьНабор(ЗаписьXML, Модуль, Набор, Номер)
КоличествоТестов = 0;
КоличествоПропущенных = 0;
@ -234,12 +238,12 @@
КонецЦикла;
Для Каждого РезультатТеста Из Набор.Тесты Цикл
ЗаписатьТест(ЗаписьXML, РезультатТеста);
КонецЦикла;
ЗаписатьСвойства(ЗаписьXML, Новый Структура("context", Набор.Режим));
Теги = ЮТКоллекции.ОбъединитьМассивы(Модуль.Теги, Набор.Теги);
ЗаписатьСвойства(ЗаписьXML, Новый Структура("context", Набор.Режим), Теги);
ЗаписьXML.ЗаписатьКонецЭлемента(); // testsuite
КонецПроцедуры
@ -328,7 +332,11 @@
КонецФункции
Процедура ЗаписатьСвойства(ЗаписьXML, Свойства)
Процедура ЗаписатьСвойства(ЗаписьXML, Свойства, Теги = Неопределено)
Если НЕ ЗначениеЗаполнено(Свойства) И НЕ ЗначениеЗаполнено(Теги) Тогда
Возврат;
КонецЕсли;
ЗаписьXML.ЗаписатьНачалоЭлемента("properties");
@ -339,8 +347,27 @@
ЗаписьXML.ЗаписатьКонецЭлемента(); // property
КонецЦикла;
ЗаписатьТеги(ЗаписьXML, Теги);
ЗаписьXML.ЗаписатьКонецЭлемента(); // properties
КонецПроцедуры
Процедура ЗаписатьТеги(ЗаписьXML, НаборТегов)
Если НЕ ЗначениеЗаполнено(НаборТегов) Тогда
Возврат;
КонецЕсли;
УникальныеТеги = ЮТСтроки.УникальныеСтроки(НаборТегов);
Для Каждого Тег Из УникальныеТеги Цикл
ЗаписьXML.ЗаписатьНачалоЭлемента("property");
ЗаписьXML.ЗаписатьАтрибут("name", "tag");
ЗаписьXML.ЗаписатьАтрибут("value", ЗначениеВСтрокуjUnit(Тег));
ЗаписьXML.ЗаписатьКонецЭлемента(); // property
КонецЦикла;
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,32 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// Copyright 2021-2024 BIA-Technologies Limited Liability Company
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
//©///////////////////////////////////////////////////////////////////////////©//
#Область СлужебныйПрограммныйИнтерфейс
Функция УникальныеТеги(Модуль, Набор, РезультатТеста) Экспорт
Теги = ЮТКоллекции.ОбъединитьМассивы(Модуль.Теги, Набор.Теги, РезультатТеста.Теги);
Возврат ЮТСтроки.УникальныеСтроки(Теги);
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#КонецОбласти

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="1b07b92f-e8b1-4683-af00-493118e65411">
<name>ЮТОтчетСлужебныйКлиентСервер</name>
<synonym>
<key>ru</key>
<value>Отчет служебный клиент сервер</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<server>true</server>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

@ -125,7 +125,7 @@
Описание.Вставить("Тесты", Новый Массив);
Если ЗначениеЗаполнено(ТегиСтрокой) Тогда
Описание.Теги = СтрРазделить(ТегиСтрокой, ", ", Ложь);
Описание.Теги = ЮТСтроки.РазделитьСтроку(ТегиСтрокой, ",");
КонецЕсли;
Возврат Описание;
@ -166,7 +166,7 @@
Описание.Вставить("НомерВНаборе", 0);
Если ЗначениеЗаполнено(ТегиСтрокой) Тогда
Описание.Теги = СтрРазделить(ТегиСтрокой, ", ", Ложь);
Описание.Теги = ЮТСтроки.РазделитьСтроку(ТегиСтрокой, ",");
КонецЕсли;
Возврат Описание;

View File

@ -99,7 +99,7 @@
// * Расширения - Структура - Имена расширений
// * Модули - Структура - Имена модулей
// * Наборы - Массив из Строка - Имена тестовых наборов
// * Теги - Массив из Строка
// * Теги - Соответствие из Строка
// * Контексты - Массив из Строка - Контексты вызова тестовых методов
// * Тесты - Массив из см. ОписаниеИмениТеста - Список путей к тестовым методам
// * Пути - Массив из Строка
@ -110,7 +110,7 @@
Фильтр.Расширения = Новый Структура();
Фильтр.Модули = Новый Структура();
Фильтр.Теги = Новый Структура();
Фильтр.Теги = Новый Соответствие();
Фильтр.Контексты = Новый Массив();
Фильтр.Наборы = Новый Массив();
Фильтр.Пути = Новый Массив();
@ -147,7 +147,7 @@
КонецЕсли;
Если ЗначениеЗаполнено(Теги) Тогда
Фильтр.Теги = ЮТКоллекции.МассивВСтруктуру(Теги);
Фильтр.Теги = МассивВСоответствие(Теги);
КонецЕсли;
Если ЗначениеЗаполнено(Наборы) Тогда
@ -274,7 +274,7 @@
Для Каждого Тег Из Теги Цикл
Если Фильтр.Теги.Свойство(Тег) Тогда
Если Фильтр.Теги[НРег(Тег)] <> Неопределено Тогда
Возврат Истина;
КонецЕсли;
@ -324,7 +324,7 @@
Для Каждого Тег Из Тест.Теги Цикл
Если Фильтр.Теги.Свойство(Тег) Тогда
Если Фильтр.Теги[НРег(Тег)] <> Неопределено Тогда
Возврат Истина;
КонецЕсли;

View File

@ -100,6 +100,7 @@
<commonModules>CommonModule.ЮТОтчетJSONСлужебный</commonModules>
<commonModules>CommonModule.ЮТОтчетJUnitСлужебный</commonModules>
<commonModules>CommonModule.ЮТОтчетСлужебный</commonModules>
<commonModules>CommonModule.ЮТОтчетСлужебныйКлиентСервер</commonModules>
<commonModules>CommonModule.ЮТПараметрыЗапускаСлужебный</commonModules>
<commonModules>CommonModule.ЮТПодключаемыеМодулиСлужебный</commonModules>
<commonModules>CommonModule.ЮТПодключаемыеМодулиСлужебныйВызовСервера</commonModules>

View File

@ -232,7 +232,7 @@
ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрацииТегов();
УстановитьНовыйФильтр(, , , "ТегТеста1, ТегТеста2, Т, _, Тег111");
УстановитьНовыйФильтр(, , , "Тег Теста1, ТегТеста2, Т, _, Тег111");
ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля);
ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов)
@ -246,7 +246,7 @@
ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрацииТегов();
УстановитьНовыйФильтр(, , , "ТегНабора");
УстановитьНовыйФильтр(, , , "Тег Набора");
ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля);
ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов)
@ -255,7 +255,7 @@
ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрацииТегов();
УстановитьНовыйФильтр(, , , "ТегНабора, ТегТеста");
УстановитьНовыйФильтр(, , , "Тег Набора, ТегТеста");
ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля);
ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов)
@ -268,16 +268,16 @@
Процедура Фильтр_ТегиМодуля() Экспорт
ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрацииТегов();
УстановитьНовыйФильтр(, , , "ТегМодуля");
УстановитьНовыйФильтр(, , , "Тег Модуля");
ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля);
ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов)
.ИмеетДлину(0);
ОписаниеМодуля = ОписаниеМодуляДляТестированияФильтрацииТегов();
ОписаниеМодуля.Теги.Добавить("ТегМодуля");
ОписаниеМодуля.Теги.Добавить("Тег Модуля");
УстановитьНовыйФильтр(, , , "ТегМодуля");
УстановитьНовыйФильтр(, , , "Тег Модуля");
ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля);
ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов)
@ -359,7 +359,7 @@
Возврат ЮТФабрикаСлужебный.ОписаниеТеста(ИмяТеста,
ЮТест.Данные().СлучайнаяСтрока(),
СтрРазделить(КонтекстыВызова, ", ", Ложь),
ЮТСтроки.РазделитьСтроку(КонтекстыВызова, ","),
Теги);
КонецФункции
@ -373,12 +373,12 @@
Функция ОписаниеМодуляДляТестированияФильтрацииТегов()
Набор1 = ОписаниеНабораТестов();
Набор1.Теги = ЮТКоллекции.ЗначениеВМассиве("ТегНабора");
Набор1.Теги = ЮТКоллекции.ЗначениеВМассиве("Тег набора");
Набор1.Тесты.Добавить(ОписаниеТеста());
Набор1.Тесты.Добавить(ОписаниеТеста(, , "ТегТеста1"));
Набор1.Тесты.Добавить(ОписаниеТеста(, , "ТегТеста1, ТегТеста2"));
Набор1.Тесты.Добавить(ОписаниеТеста(, , "Тег Теста1"));
Набор1.Тесты.Добавить(ОписаниеТеста(, , "Тег Теста1, ТегТеста2"));
Набор1.Тесты.Добавить(ОписаниеТеста(, , "ТегТеста"));
Набор1.Тесты.Добавить(ОписаниеТеста(, , "ТЕГТеста1"));
Набор1.Тесты.Добавить(ОписаниеТеста(, , "ТЕГ Теста1"));
Набор2 = ОписаниеНабораТестов();
Набор2.Тесты.Добавить(ОписаниеТеста(, , "ТегТеста2"));