mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2024-12-03 08:45:31 +02:00
Рефакторинг исполнителя
This commit is contained in:
parent
5af313e4aa
commit
38c8e951d6
@ -64,13 +64,61 @@
|
|||||||
Параметры.Вставить("ПараметрыЗапуска");
|
Параметры.Вставить("ПараметрыЗапуска");
|
||||||
Параметры.Вставить("Цепочка", Новый Массив());
|
Параметры.Вставить("Цепочка", Новый Массив());
|
||||||
Параметры.Вставить("ИндексСледующегоОбработчика", -1);
|
Параметры.Вставить("ИндексСледующегоОбработчика", -1);
|
||||||
Параметры.Вставить("КоллекцияКатегорийНаборов");
|
Параметры.Вставить("ИсполняемыеТестовыеМодули");
|
||||||
Параметры.Вставить("РезультатыТестирования");
|
Параметры.Вставить("РезультатыТестирования");
|
||||||
|
|
||||||
Возврат Параметры;
|
Возврат Параметры;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
Функция ВыполнитьТестыМодуля(ТестовыйМодуль) Экспорт
|
||||||
|
|
||||||
|
Результаты = Новый Массив();
|
||||||
|
|
||||||
|
КонтекстыИсполнения = ЮТФабрика.КонтекстыИсполнения();
|
||||||
|
|
||||||
|
КлиентскиеНаборы = Новый Массив();
|
||||||
|
СерверныеНаборы = Новый Массив();
|
||||||
|
ПропущенныеНаборы = Новый Массив();
|
||||||
|
|
||||||
|
Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл
|
||||||
|
|
||||||
|
Если НЕ Набор.Выполнять Тогда
|
||||||
|
ПропущенныеНаборы.Добавить(Набор);
|
||||||
|
Продолжить;
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
РежимИсполнения = ЮТФабрика.КонтекстИсполнения(Набор.Режим);
|
||||||
|
|
||||||
|
Если РежимИсполнения = КонтекстыИсполнения.Клиент Тогда
|
||||||
|
КлиентскиеНаборы.Добавить(Набор);
|
||||||
|
ИначеЕсли РежимИсполнения = КонтекстыИсполнения.Сервер Тогда
|
||||||
|
СерверныеНаборы.Добавить(Набор);
|
||||||
|
Иначе
|
||||||
|
ПропущенныеНаборы.Добавить(Набор);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
ТестовыйМодульОблегченный = ЮТОбщий.СкопироватьСтруктуру(ТестовыйМодуль);
|
||||||
|
ТестовыйМодульОблегченный.НаборыТестов = Новый Массив();
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(КлиентскиеНаборы) Тогда
|
||||||
|
Результаты = ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(КлиентскиеНаборы, ТестовыйМодульОблегченный);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
Если ЗначениеЗаполнено(СерверныеНаборы) Тогда
|
||||||
|
Результат = ЮТИсполнительСервер.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ТестовыйМодульОблегченный);
|
||||||
|
ЮТЛогирование.ВывестиСерверныеСообщения();
|
||||||
|
ЮТОбщий.ДополнитьМассив(Результаты, Результат);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
ЮТОбщий.ДополнитьМассив(Результаты, ПропущенныеНаборы);
|
||||||
|
|
||||||
|
Возврат Результаты;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
|
||||||
#Область СлужебныеПроцедурыИФункции
|
#Область СлужебныеПроцедурыИФункции
|
||||||
@ -117,45 +165,38 @@
|
|||||||
ТестовыеМодули = ЮТЧитатель.ЗагрузитьТесты(Параметры);
|
ТестовыеМодули = ЮТЧитатель.ЗагрузитьТесты(Параметры);
|
||||||
ЮТСобытия.ПослеЧтенияСценариев(ТестовыеМодули);
|
ЮТСобытия.ПослеЧтенияСценариев(ТестовыеМодули);
|
||||||
|
|
||||||
КоллекцияКатегорийНаборов = Новый Массив();
|
ИсполняемыеТестовыеМодули = Новый Массив();
|
||||||
|
|
||||||
Для Каждого ТестовыйМодуль Из ТестовыеМодули Цикл
|
Для Каждого ТестовыйМодуль Из ТестовыеМодули Цикл
|
||||||
КатегорииНаборов = КатегорииНаборовТестовМодуля(ТестовыйМодуль);
|
ИсполняемыйТестовыйМодуль = ИсполняемыйТестовыйМодуль(ТестовыйМодуль);
|
||||||
КоллекцияКатегорийНаборов.Добавить(КатегорииНаборов);
|
ИсполняемыеТестовыеМодули.Добавить(ИсполняемыйТестовыйМодуль);
|
||||||
|
// TODO
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
ЮТСобытия.ПослеФормированияИсполняемыхНаборовТестов(КоллекцияКатегорийНаборов);
|
ЮТСобытия.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули);
|
||||||
ДополнительныеПараметры.КоллекцияКатегорийНаборов = КоллекцияКатегорийНаборов;
|
ДополнительныеПараметры.ИсполняемыеТестовыеМодули = ИсполняемыеТестовыеМодули;
|
||||||
|
|
||||||
ВызватьСледующийОбработчик(ДополнительныеПараметры, КоллекцияКатегорийНаборов);
|
ВызватьСледующийОбработчик(ДополнительныеПараметры, ИсполняемыеТестовыеМодули);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Процедура ОбработчикВыполнитьТестирование(Результат, ДополнительныеПараметры) Экспорт
|
Процедура ОбработчикВыполнитьТестирование(Результат, ДополнительныеПараметры) Экспорт
|
||||||
|
|
||||||
ЮТСобытия.ПередВыполнениемТестов(ДополнительныеПараметры.КоллекцияКатегорийНаборов);
|
ЮТСобытия.ПередВыполнениемТестов(ДополнительныеПараметры.ИсполняемыеТестовыеМодули);
|
||||||
|
|
||||||
РезультатыТестирования = Новый Массив();
|
РезультатыТестирования = Новый Массив();
|
||||||
КоллекцияКатегорийНаборов = ДополнительныеПараметры.КоллекцияКатегорийНаборов;
|
|
||||||
|
|
||||||
Для Каждого КатегорииНаборов Из КоллекцияКатегорийНаборов Цикл
|
Для Каждого ТестовыйМодуль Из ДополнительныеПараметры.ИсполняемыеТестовыеМодули Цикл
|
||||||
|
|
||||||
Результат = ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Клиентские, КатегорииНаборов.ТестовыйМодуль);
|
РезультатыПрогонаМодуля = ВыполнитьТестыМодуля(ТестовыйМодуль);
|
||||||
ЮТОбщий.ДополнитьМассив(РезультатыТестирования, Результат);
|
ЮТОбщий.ДополнитьМассив(РезультатыТестирования, РезультатыПрогонаМодуля);
|
||||||
|
|
||||||
Результат = ЮТИсполнительСервер.ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Серверные, КатегорииНаборов.ТестовыйМодуль);
|
|
||||||
ЮТЛогирование.ВывестиСерверныеСообщения();
|
|
||||||
|
|
||||||
ЮТОбщий.ДополнитьМассив(РезультатыТестирования, Результат);
|
|
||||||
|
|
||||||
ЮТОбщий.ДополнитьМассив(РезультатыТестирования, КатегорииНаборов.Пропущенные);
|
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
ЮТСобытия.ПослеВыполненияТестов(РезультатыТестирования);
|
ЮТСобытия.ПослеВыполненияТестов(РезультатыТестирования);
|
||||||
|
|
||||||
ДополнительныеПараметры.РезультатыТестирования = РезультатыТестирования;
|
ДополнительныеПараметры.РезультатыТестирования = РезультатыТестирования;
|
||||||
ВызватьСледующийОбработчик(ДополнительныеПараметры);
|
ВызватьСледующийОбработчик(ДополнительныеПараметры, РезультатыТестирования);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
@ -228,11 +269,9 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
Функция КатегорииНаборовТестовМодуля(ТестовыйМодуль)
|
Функция ИсполняемыйТестовыйМодуль(ТестовыйМодуль)
|
||||||
|
|
||||||
КатегорииНаборов = ЮТФабрика.ОписаниеКатегорияНабораТестов(ТестовыйМодуль);
|
ИсполняемыйТестовыйМодуль = ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль);
|
||||||
|
|
||||||
ИсполняемыеТестовыеНаборы = Новый Массив;
|
|
||||||
|
|
||||||
Для Каждого ТестовыйНабор Из ТестовыйМодуль.НаборыТестов Цикл
|
Для Каждого ТестовыйНабор Из ТестовыйМодуль.НаборыТестов Цикл
|
||||||
|
|
||||||
@ -262,13 +301,13 @@
|
|||||||
Если НаборыКонтекстов.Количество() Тогда
|
Если НаборыКонтекстов.Количество() Тогда
|
||||||
|
|
||||||
Для Каждого Элемент Из НаборыКонтекстов Цикл
|
Для Каждого Элемент Из НаборыКонтекстов Цикл
|
||||||
ИсполняемыеТестовыеНаборы.Добавить(Элемент.Значение);
|
ИсполняемыйТестовыйМодуль.НаборыТестов.Добавить(Элемент.Значение);
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Иначе
|
Иначе
|
||||||
|
|
||||||
// TODO. Корякин А. 2021.11.24 А надо ли добавлять при отсутствии тестов
|
// TODO. Корякин А. 2021.11.24 А надо ли добавлять при отсутствии тестов
|
||||||
ИсполняемыеТестовыеНаборы.Добавить(ЮТФабрика.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор, ТестовыйМодуль));
|
ИсполняемыйТестовыйМодуль.НаборыТестов.Добавить(ЮТФабрика.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор, ТестовыйМодуль));
|
||||||
|
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
@ -278,7 +317,7 @@
|
|||||||
КонтекстыМодуля = ЮТФабрика.КонтекстыМодуля(ТестовыйМодуль.МетаданныеМодуля);
|
КонтекстыМодуля = ЮТФабрика.КонтекстыМодуля(ТестовыйМодуль.МетаданныеМодуля);
|
||||||
КонтекстыИсполнения = ЮТФабрика.КонтекстыИсполнения();
|
КонтекстыИсполнения = ЮТФабрика.КонтекстыИсполнения();
|
||||||
|
|
||||||
Для Каждого Набор Из ИсполняемыеТестовыеНаборы Цикл
|
Для Каждого Набор Из ИсполняемыйТестовыйМодуль.НаборыТестов Цикл
|
||||||
|
|
||||||
КонтекстИсполнения = ЮТФабрика.КонтекстИсполнения(Набор.Режим);
|
КонтекстИсполнения = ЮТФабрика.КонтекстИсполнения(Набор.Режим);
|
||||||
|
|
||||||
@ -299,24 +338,9 @@
|
|||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
КонецЕсли;
|
КонецЕсли;
|
||||||
|
|
||||||
Если НЕ Набор.Выполнять Тогда
|
|
||||||
КатегорииНаборов.Пропущенные.Добавить(Набор);
|
|
||||||
Продолжить;
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
Если КонтекстИсполнения = КонтекстыИсполнения.Сервер Тогда
|
|
||||||
|
|
||||||
КатегорииНаборов.Серверные.Добавить(Набор);
|
|
||||||
|
|
||||||
ИначеЕсли КонтекстИсполнения = КонтекстыИсполнения.Клиент Тогда
|
|
||||||
|
|
||||||
КатегорииНаборов.Клиентские.Добавить(Набор);
|
|
||||||
|
|
||||||
КонецЕсли;
|
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
Возврат КатегорииНаборов;
|
Возврат ИсполняемыйТестовыйМодуль;
|
||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
@ -374,4 +398,20 @@
|
|||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
|
||||||
|
Функция НаборыТестовРежима(ТестовыйМодуль, ОжидаемыйРежимИсполнения)
|
||||||
|
|
||||||
|
Результат = Новый Массив();
|
||||||
|
|
||||||
|
Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл
|
||||||
|
|
||||||
|
Если Набор.Выполнять И ЮТФабрика.КонтекстИсполнения(Набор.Режим) = ОжидаемыйРежимИсполнения Тогда
|
||||||
|
Результат.Добавить(Набор);
|
||||||
|
КонецЕсли;
|
||||||
|
|
||||||
|
КонецЦикла;
|
||||||
|
|
||||||
|
Возврат Результат;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
#КонецОбласти
|
#КонецОбласти
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
// Выполняет тесты группы наборов, соответствующих одному режиму выполнения (клиент/сервер)
|
// Выполняет тесты группы наборов, соответствующих одному режиму выполнения (клиент/сервер)
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Наборы тестов модуля
|
// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Наборы тестов модуля
|
||||||
// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
|
// ТестовыйМодуль - см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля
|
||||||
//
|
//
|
||||||
// Возвращаемое значение:
|
// Возвращаемое значение:
|
||||||
// Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов с заполненной информацией о выполнении
|
// Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов с заполненной информацией о выполнении
|
||||||
|
@ -164,19 +164,19 @@
|
|||||||
|
|
||||||
// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
|
// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// КоллекцияКатегорийНаборов - Массив из см. ЮТФабрика.ОписаниеКатегорияНабораТестов - Набор исполняемых наборов
|
// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов
|
||||||
Процедура ПослеФормированияИсполняемыхНаборовТестов(КоллекцияКатегорийНаборов) Экспорт
|
Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт
|
||||||
|
|
||||||
Количество = 0;
|
Количество = 0;
|
||||||
|
|
||||||
Для Каждого Наборы Из КоллекцияКатегорийНаборов Цикл
|
Для Каждого ТестовыйМодуль Из ИсполняемыеТестовыеМодули Цикл
|
||||||
|
|
||||||
Для Каждого Набор Из Наборы.Клиентские Цикл
|
Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл
|
||||||
ЮТОбщий.Инкремент(Количество, Набор.Тесты.Количество());
|
|
||||||
КонецЦикла;
|
Если Набор.Выполнять Тогда
|
||||||
|
ЮТОбщий.Инкремент(Количество, Набор.Тесты.Количество());
|
||||||
Для Каждого Набор Из Наборы.Серверные Цикл
|
КонецЕсли;
|
||||||
ЮТОбщий.Инкремент(Количество, Набор.Тесты.Количество());
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
|
||||||
КонецЦикла;
|
КонецЦикла;
|
||||||
|
@ -216,10 +216,10 @@
|
|||||||
|
|
||||||
// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
|
// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
|
||||||
// Параметры:
|
// Параметры:
|
||||||
// КоллекцияКатегорийНаборов - Массив из см. ЮТФабрика.ОписаниеКатегорияНабораТестов - Набор исполняемых наборов
|
// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов
|
||||||
Процедура ПослеФормированияИсполняемыхНаборовТестов(КоллекцияКатегорийНаборов) Экспорт
|
Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт
|
||||||
|
|
||||||
Параметры = ЮТОбщий.ЗначениеВМассиве(КоллекцияКатегорийНаборов);
|
Параметры = ЮТОбщий.ЗначениеВМассиве(ИсполняемыеТестовыеМодули);
|
||||||
ВызватьОбработчикРасширения("ПослеФормированияИсполняемыхНаборовТестов", Параметры);
|
ВызватьОбработчикРасширения("ПослеФормированияИсполняемыхНаборовТестов", Параметры);
|
||||||
|
|
||||||
КонецПроцедуры
|
КонецПроцедуры
|
||||||
|
@ -278,6 +278,30 @@
|
|||||||
|
|
||||||
КонецФункции
|
КонецФункции
|
||||||
|
|
||||||
|
// Описание исполняемого тестового модуля.
|
||||||
|
// Содержит всю необходимую информацию для прогона тестов, а также данные результата
|
||||||
|
// Параметры:
|
||||||
|
// ТестовыйМодуль - см. ОписаниеТестовогоМодуля
|
||||||
|
//
|
||||||
|
// Возвращаемое значение:
|
||||||
|
// Структура - Описание тестового модуля:
|
||||||
|
// * МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
|
||||||
|
// * НаборыТестов - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
|
||||||
|
// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки
|
||||||
|
// * НастройкиВыполнения- Структура - Настройки исполнения теста
|
||||||
|
Функция ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль) Экспорт
|
||||||
|
|
||||||
|
Описание = Новый Структура;
|
||||||
|
|
||||||
|
Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля);
|
||||||
|
Описание.Вставить("НаборыТестов", Новый Массив);
|
||||||
|
Описание.Вставить("Ошибки", ЮТОбщий.СкопироватьМассив(ТестовыйМодуль.Ошибки));
|
||||||
|
Описание.Вставить("НастройкиВыполнения", ЮТОбщий.СкопироватьСтруктуру(ТестовыйМодуль.НастройкиВыполнения));
|
||||||
|
|
||||||
|
Возврат Описание;
|
||||||
|
|
||||||
|
КонецФункции
|
||||||
|
|
||||||
// ОписаниеИсполняемогоНабораТестов
|
// ОписаниеИсполняемогоНабораТестов
|
||||||
// Возвращает описание исполняемого тестового набора.
|
// Возвращает описание исполняемого тестового набора.
|
||||||
// Содержит данные необходимые для выполнения прогона тестов
|
// Содержит данные необходимые для выполнения прогона тестов
|
||||||
@ -307,6 +331,7 @@
|
|||||||
Описание.Вставить("Теги", НаборТестов.Теги);
|
Описание.Вставить("Теги", НаборТестов.Теги);
|
||||||
Описание.Вставить("Ошибки", ЮТОбщий.СкопироватьМассив(НаборТестов.Ошибки));
|
Описание.Вставить("Ошибки", ЮТОбщий.СкопироватьМассив(НаборТестов.Ошибки));
|
||||||
Описание.Вставить("Режим", "");
|
Описание.Вставить("Режим", "");
|
||||||
|
Описание.Вставить("ТестовыйМодуль", ТестовыйМодуль);
|
||||||
Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля);
|
Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля);
|
||||||
Описание.Вставить("Тесты", Новый Массив);
|
Описание.Вставить("Тесты", Новый Массив);
|
||||||
Описание.Вставить("Выполнять", Описание.Ошибки.Количество() = 0);
|
Описание.Вставить("Выполнять", Описание.Ошибки.Количество() = 0);
|
||||||
|
Loading…
Reference in New Issue
Block a user