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);
|
||||
Параметры.Вставить("КоллекцияКатегорийНаборов");
|
||||
Параметры.Вставить("ИсполняемыеТестовыеМодули");
|
||||
Параметры.Вставить("РезультатыТестирования");
|
||||
|
||||
Возврат Параметры;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ВыполнитьТестыМодуля(ТестовыйМодуль) Экспорт
|
||||
|
||||
Результаты = Новый Массив();
|
||||
|
||||
КонтекстыИсполнения = ЮТФабрика.КонтекстыИсполнения();
|
||||
|
||||
КлиентскиеНаборы = Новый Массив();
|
||||
СерверныеНаборы = Новый Массив();
|
||||
ПропущенныеНаборы = Новый Массив();
|
||||
|
||||
Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл
|
||||
|
||||
Если НЕ Набор.Выполнять Тогда
|
||||
ПропущенныеНаборы.Добавить(Набор);
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
РежимИсполнения = ЮТФабрика.КонтекстИсполнения(Набор.Режим);
|
||||
|
||||
Если РежимИсполнения = КонтекстыИсполнения.Клиент Тогда
|
||||
КлиентскиеНаборы.Добавить(Набор);
|
||||
ИначеЕсли РежимИсполнения = КонтекстыИсполнения.Сервер Тогда
|
||||
СерверныеНаборы.Добавить(Набор);
|
||||
Иначе
|
||||
ПропущенныеНаборы.Добавить(Набор);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ТестовыйМодульОблегченный = ЮТОбщий.СкопироватьСтруктуру(ТестовыйМодуль);
|
||||
ТестовыйМодульОблегченный.НаборыТестов = Новый Массив();
|
||||
|
||||
Если ЗначениеЗаполнено(КлиентскиеНаборы) Тогда
|
||||
Результаты = ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(КлиентскиеНаборы, ТестовыйМодульОблегченный);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(СерверныеНаборы) Тогда
|
||||
Результат = ЮТИсполнительСервер.ВыполнитьГруппуНаборовТестов(СерверныеНаборы, ТестовыйМодульОблегченный);
|
||||
ЮТЛогирование.ВывестиСерверныеСообщения();
|
||||
ЮТОбщий.ДополнитьМассив(Результаты, Результат);
|
||||
КонецЕсли;
|
||||
|
||||
ЮТОбщий.ДополнитьМассив(Результаты, ПропущенныеНаборы);
|
||||
|
||||
Возврат Результаты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@ -117,45 +165,38 @@
|
||||
ТестовыеМодули = ЮТЧитатель.ЗагрузитьТесты(Параметры);
|
||||
ЮТСобытия.ПослеЧтенияСценариев(ТестовыеМодули);
|
||||
|
||||
КоллекцияКатегорийНаборов = Новый Массив();
|
||||
ИсполняемыеТестовыеМодули = Новый Массив();
|
||||
|
||||
Для Каждого ТестовыйМодуль Из ТестовыеМодули Цикл
|
||||
КатегорииНаборов = КатегорииНаборовТестовМодуля(ТестовыйМодуль);
|
||||
КоллекцияКатегорийНаборов.Добавить(КатегорииНаборов);
|
||||
ИсполняемыйТестовыйМодуль = ИсполняемыйТестовыйМодуль(ТестовыйМодуль);
|
||||
ИсполняемыеТестовыеМодули.Добавить(ИсполняемыйТестовыйМодуль);
|
||||
// TODO
|
||||
КонецЦикла;
|
||||
|
||||
ЮТСобытия.ПослеФормированияИсполняемыхНаборовТестов(КоллекцияКатегорийНаборов);
|
||||
ДополнительныеПараметры.КоллекцияКатегорийНаборов = КоллекцияКатегорийНаборов;
|
||||
ЮТСобытия.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули);
|
||||
ДополнительныеПараметры.ИсполняемыеТестовыеМодули = ИсполняемыеТестовыеМодули;
|
||||
|
||||
ВызватьСледующийОбработчик(ДополнительныеПараметры, КоллекцияКатегорийНаборов);
|
||||
ВызватьСледующийОбработчик(ДополнительныеПараметры, ИсполняемыеТестовыеМодули);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикВыполнитьТестирование(Результат, ДополнительныеПараметры) Экспорт
|
||||
|
||||
ЮТСобытия.ПередВыполнениемТестов(ДополнительныеПараметры.КоллекцияКатегорийНаборов);
|
||||
ЮТСобытия.ПередВыполнениемТестов(ДополнительныеПараметры.ИсполняемыеТестовыеМодули);
|
||||
|
||||
РезультатыТестирования = Новый Массив();
|
||||
КоллекцияКатегорийНаборов = ДополнительныеПараметры.КоллекцияКатегорийНаборов;
|
||||
|
||||
Для Каждого КатегорииНаборов Из КоллекцияКатегорийНаборов Цикл
|
||||
Для Каждого ТестовыйМодуль Из ДополнительныеПараметры.ИсполняемыеТестовыеМодули Цикл
|
||||
|
||||
Результат = ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Клиентские, КатегорииНаборов.ТестовыйМодуль);
|
||||
ЮТОбщий.ДополнитьМассив(РезультатыТестирования, Результат);
|
||||
|
||||
Результат = ЮТИсполнительСервер.ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Серверные, КатегорииНаборов.ТестовыйМодуль);
|
||||
ЮТЛогирование.ВывестиСерверныеСообщения();
|
||||
|
||||
ЮТОбщий.ДополнитьМассив(РезультатыТестирования, Результат);
|
||||
|
||||
ЮТОбщий.ДополнитьМассив(РезультатыТестирования, КатегорииНаборов.Пропущенные);
|
||||
РезультатыПрогонаМодуля = ВыполнитьТестыМодуля(ТестовыйМодуль);
|
||||
ЮТОбщий.ДополнитьМассив(РезультатыТестирования, РезультатыПрогонаМодуля);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ЮТСобытия.ПослеВыполненияТестов(РезультатыТестирования);
|
||||
|
||||
ДополнительныеПараметры.РезультатыТестирования = РезультатыТестирования;
|
||||
ВызватьСледующийОбработчик(ДополнительныеПараметры);
|
||||
ВызватьСледующийОбработчик(ДополнительныеПараметры, РезультатыТестирования);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -228,11 +269,9 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция КатегорииНаборовТестовМодуля(ТестовыйМодуль)
|
||||
Функция ИсполняемыйТестовыйМодуль(ТестовыйМодуль)
|
||||
|
||||
КатегорииНаборов = ЮТФабрика.ОписаниеКатегорияНабораТестов(ТестовыйМодуль);
|
||||
|
||||
ИсполняемыеТестовыеНаборы = Новый Массив;
|
||||
ИсполняемыйТестовыйМодуль = ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль);
|
||||
|
||||
Для Каждого ТестовыйНабор Из ТестовыйМодуль.НаборыТестов Цикл
|
||||
|
||||
@ -262,13 +301,13 @@
|
||||
Если НаборыКонтекстов.Количество() Тогда
|
||||
|
||||
Для Каждого Элемент Из НаборыКонтекстов Цикл
|
||||
ИсполняемыеТестовыеНаборы.Добавить(Элемент.Значение);
|
||||
ИсполняемыйТестовыйМодуль.НаборыТестов.Добавить(Элемент.Значение);
|
||||
КонецЦикла;
|
||||
|
||||
Иначе
|
||||
|
||||
// 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;
|
||||
|
||||
Для Каждого Наборы Из КоллекцияКатегорийНаборов Цикл
|
||||
Для Каждого ТестовыйМодуль Из ИсполняемыеТестовыеМодули Цикл
|
||||
|
||||
Для Каждого Набор Из Наборы.Клиентские Цикл
|
||||
ЮТОбщий.Инкремент(Количество, Набор.Тесты.Количество());
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого Набор Из Наборы.Серверные Цикл
|
||||
ЮТОбщий.Инкремент(Количество, Набор.Тесты.Количество());
|
||||
Для Каждого Набор Из ТестовыйМодуль.НаборыТестов Цикл
|
||||
|
||||
Если Набор.Выполнять Тогда
|
||||
ЮТОбщий.Инкремент(Количество, Набор.Тесты.Количество());
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЦикла;
|
||||
|
@ -216,10 +216,10 @@
|
||||
|
||||
// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
|
||||
// Параметры:
|
||||
// КоллекцияКатегорийНаборов - Массив из см. ЮТФабрика.ОписаниеКатегорияНабораТестов - Набор исполняемых наборов
|
||||
Процедура ПослеФормированияИсполняемыхНаборовТестов(КоллекцияКатегорийНаборов) Экспорт
|
||||
// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрика.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов
|
||||
Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт
|
||||
|
||||
Параметры = ЮТОбщий.ЗначениеВМассиве(КоллекцияКатегорийНаборов);
|
||||
Параметры = ЮТОбщий.ЗначениеВМассиве(ИсполняемыеТестовыеМодули);
|
||||
ВызватьОбработчикРасширения("ПослеФормированияИсполняемыхНаборовТестов", Параметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
@ -278,6 +278,30 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Описание исполняемого тестового модуля.
|
||||
// Содержит всю необходимую информацию для прогона тестов, а также данные результата
|
||||
// Параметры:
|
||||
// ТестовыйМодуль - см. ОписаниеТестовогоМодуля
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Описание тестового модуля:
|
||||
// * МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
|
||||
// * НаборыТестов - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
|
||||
// * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки
|
||||
// * НастройкиВыполнения- Структура - Настройки исполнения теста
|
||||
Функция ОписаниеИсполняемогоТестовогоМодуля(ТестовыйМодуль) Экспорт
|
||||
|
||||
Описание = Новый Структура;
|
||||
|
||||
Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля);
|
||||
Описание.Вставить("НаборыТестов", Новый Массив);
|
||||
Описание.Вставить("Ошибки", ЮТОбщий.СкопироватьМассив(ТестовыйМодуль.Ошибки));
|
||||
Описание.Вставить("НастройкиВыполнения", ЮТОбщий.СкопироватьСтруктуру(ТестовыйМодуль.НастройкиВыполнения));
|
||||
|
||||
Возврат Описание;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// ОписаниеИсполняемогоНабораТестов
|
||||
// Возвращает описание исполняемого тестового набора.
|
||||
// Содержит данные необходимые для выполнения прогона тестов
|
||||
@ -307,6 +331,7 @@
|
||||
Описание.Вставить("Теги", НаборТестов.Теги);
|
||||
Описание.Вставить("Ошибки", ЮТОбщий.СкопироватьМассив(НаборТестов.Ошибки));
|
||||
Описание.Вставить("Режим", "");
|
||||
Описание.Вставить("ТестовыйМодуль", ТестовыйМодуль);
|
||||
Описание.Вставить("МетаданныеМодуля", ТестовыйМодуль.МетаданныеМодуля);
|
||||
Описание.Вставить("Тесты", Новый Массив);
|
||||
Описание.Вставить("Выполнять", Описание.Ошибки.Количество() = 0);
|
||||
|
Loading…
Reference in New Issue
Block a user