1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2024-11-30 08:36:50 +02:00

#352 Возможность отказа от загрузки тестов

This commit is contained in:
alkoleft 2024-05-30 00:11:41 +03:00
parent 1e5a2ea920
commit b8281c1a63
10 changed files with 139 additions and 35 deletions

View File

@ -177,20 +177,27 @@
ЮТЛогирование.Информация("Загрузка тестовых сценариев");
ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ЗагрузкаТестов);
ЮТСобытияСлужебный.ПередЧтениеСценариев();
ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска);
ЮТСобытияСлужебный.ПослеЧтенияСценариев(ТестовыеМодули);
Отказ = Ложь;
ЮТСобытияСлужебный.ПередЧтениеСценариев(Отказ);
ИсполняемыеТестовыеМодули = Новый Массив();
Для Каждого ТестовыйМодуль Из ТестовыеМодули Цикл
ИсполняемыйТестовыйМодуль = ИсполняемыйТестовыйМодуль(ТестовыйМодуль);
ИсполняемыеТестовыеМодули.Добавить(ИсполняемыйТестовыйМодуль);
КонецЦикла;
ЮТСобытияСлужебный.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули);
ДополнительныеПараметры.ИсполняемыеТестовыеМодули = ИсполняемыеТестовыеМодули;
Если Отказ Тогда
ЮТЛогирование.Информация("Загрузка тестовых сценариев отменена");
ДополнительныеПараметры.ИсполняемыеТестовыеМодули = Новый Массив;
Иначе
ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска);
ЮТСобытияСлужебный.ПослеЧтенияСценариев(ТестовыеМодули);
ИсполняемыеТестовыеМодули = Новый Массив();
Для Каждого ТестовыйМодуль Из ТестовыеМодули Цикл
ИсполняемыйТестовыйМодуль = ИсполняемыйТестовыйМодуль(ТестовыйМодуль);
ИсполняемыеТестовыеМодули.Добавить(ИсполняемыйТестовыйМодуль);
КонецЦикла;
ЮТСобытияСлужебный.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули);
ДополнительныеПараметры.ИсполняемыеТестовыеМодули = ИсполняемыеТестовыеМодули;
КонецЕсли;
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры, ИсполняемыеТестовыеМодули);

View File

@ -79,7 +79,7 @@
#Область СобытияИсполненияТестов
// Обработчик события "ПередВсемиТестамиМодуля"
// Вызов события "ПередВсемиТестамиМодуля"
//
// Параметры:
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
@ -90,7 +90,7 @@
КонецПроцедуры
// Обработчик события "ПередТестовымНабором"
// Вызов события "ПередТестовымНабором"
//
// Параметры:
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
@ -102,7 +102,7 @@
КонецПроцедуры
// Обработчик события "ПередКаждымТестом"
// Вызов события "ПередКаждымТестом"
//
// Параметры:
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
@ -115,7 +115,7 @@
КонецПроцедуры
// Обработчик события "ПослеКаждогоТеста"
// Вызов события "ПослеКаждогоТеста"
//
// Параметры:
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
@ -128,7 +128,7 @@
КонецПроцедуры
// Обработчик события "ПослеТестовогоНабора"
// Вызов события "ПослеТестовогоНабора"
//
// Параметры:
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
@ -140,7 +140,7 @@
КонецПроцедуры
// Обработчик события "ПослеВсехТестовМодуля"
// Вызов события "ПослеВсехТестовМодуля"
//
// Параметры:
// ТестовыйМодуль - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
@ -177,16 +177,19 @@
#Область СобытияЗагрузкиТестов
// Обработка события "ПередЧтениеСценариев"
// Вызов события "ПередЧтениеСценариев"
// Вызывается перед загрузкой тестов.
Процедура ПередЧтениеСценариев() Экспорт
//
// Параметры:
// Отказ - Булево - Отказ от загрузки тестов из модуля
Процедура ПередЧтениеСценариев(Отказ) Экспорт
Параметры = Новый Массив();
ВызватьПодключаемыйОбработчикСобытия("ПередЧтениеСценариев", "ЗагрузкаТестов", Параметры);
КонецПроцедуры
// Обработчик события "ПередЧтениемСценариевМодуля"
// Вызов события "ПередЧтениемСценариевМодуля"
// Вызывается перед чтением сценариев конкретного модуля (вызовом метода `ИсполняемыеСценарии`).
// Позволяет настроить базовые параметры перед чтением настроек тестов модуля.
//
@ -210,7 +213,7 @@
КонецПроцедуры
// Обработка события "ПослеЧтенияСценариев"
// Вызов события "ПослеЧтенияСценариев"
// Параметры:
// Сценарии - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах
Процедура ПослеЧтенияСценариев(Сценарии) Экспорт
@ -220,7 +223,7 @@
КонецПроцедуры
// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
// Вызов события "ПослеФормированияИсполняемыхНаборовТестов"
// Параметры:
// ИсполняемыеТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля - Набор исполняемых наборов
Процедура ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули) Экспорт
@ -230,6 +233,24 @@
КонецПроцедуры
// Вызов события "ФильтрацияТестов_ПроверкаМодуля"
// Вызывается при поиске тестовых модулей.
// Позволяет отфильтровать "лишние" тестовые модули
//
// Параметры:
// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМетаданныеМодуля
// Отказ - Булево - Отказ от загрузки тестов из модуля
Процедура ФильтрацияТестов_ПроверкаМодуля(МетаданныеМодуля, Отказ) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля, Отказ);
ВызватьПодключаемыйОбработчикСобытия("ПроверкаМодуля", "ЗагрузкаТестов", Параметры);
Если Параметры[1] Тогда
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
@ -332,7 +353,7 @@
КонецФункции
#КонецЕсли
Функция ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, Подсистема, ПараметрыСобытия, ВызватьСерверныйОбработчик = Ложь) Экспорт
Функция ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, Подсистема, ПараметрыСобытия) Экспорт
ОбработчикиСобытий = ЮТПодключаемыеМодулиСлужебный.ОбработчикиСобытий(Подсистема);
@ -360,13 +381,6 @@
КонецЦикла;
#Если Клиент Тогда
Если ВызватьСерверныйОбработчик Тогда
Параметры = ЮТКоллекции.ЗначениеВМассиве(ИмяСобытия, Подсистема, ПараметрыСобытия);
ЮТМетодыСлужебный.ВыполнитьНаСервере("ЮТСобытияСлужебный.ВызватьПодключаемыйОбработчикСобытия", Параметры);
КонецЕсли;
#КонецЕсли
Возврат Ошибки;
КонецФункции

View File

@ -28,13 +28,23 @@
КонецФункции
Функция ЭтоПодходящийМодуль(ОписаниеМодуля) Экспорт
Функция ЭтоПодходящийМодуль(МетаданныеМодуля) Экспорт
Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя();
Возврат ЗначениеЗаполнено(ОписаниеМодуля.Расширение)
И (НЕ Контекст.Фильтр.ЕстьФильтрМодулей ИЛИ Контекст.Фильтр.Модули.Свойство(ОписаниеМодуля.Имя))
И ЭтоПодходящееРасширение(ОписаниеМодуля.Расширение);
Успешно = ЗначениеЗаполнено(МетаданныеМодуля.Расширение)
И (НЕ Контекст.Фильтр.ЕстьФильтрМодулей ИЛИ Контекст.Фильтр.Модули.Свойство(МетаданныеМодуля.Имя))
И ЭтоПодходящееРасширение(МетаданныеМодуля.Расширение);
Если Успешно Тогда
Отказ = Ложь;
ЮТСобытияСлужебный.ФильтрацияТестов_ПроверкаМодуля(МетаданныеМодуля, Отказ);
Если Отказ Тогда
Успешно = Ложь;
КонецЕсли;
КонецЕсли;
Возврат Успешно;
КонецФункции

View File

@ -30,6 +30,7 @@
.Добавитьтест("Фильтр_ТегиНабора")
.Добавитьтест("Фильтр_ТегиТеста")
.Добавитьтест("Фильтр_Наборы")
.Добавитьтест("Фильтр_СобытиеФильтрацииМодуля")
;
КонецПроцедуры
@ -309,6 +310,22 @@
КонецПроцедуры
Процедура Фильтр_СобытиеФильтрацииМодуля() Экспорт
ИмяМодуля = "ОМ_ЮТФильтрацияСлужебный";
ОписаниеМодуля = МетаданныеМодуля(ИмяМодуля, "test");
УстановитьНовыйФильтр(ИмяМодуля);
Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля);
ЮТест.ОжидаетЧто(Результат, "Без фильтрации").Равно(Истина);
ЮТест.Контекст().УстановитьЗначение(ИмяМодуля, Истина);
Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля);
ЮТест.ОжидаетЧто(Результат, "С фильтрацией").Равно(Ложь);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции

View File

@ -0,0 +1,29 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// 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="ebd039a1-6dd9-40eb-b819-79426c69a64d">
<name>ФильтрацияЗагрузкиТестов</name>
<synonym>
<key>ru</key>
<value>Фильтрация загрузки тестов</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<server>true</server>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

@ -67,6 +67,7 @@
<commonModules>CommonModule.ПомощникТестированияВызовСервера</commonModules>
<commonModules>CommonModule.ТегиТестов</commonModules>
<commonModules>CommonModule.ТестовыеДанные</commonModules>
<commonModules>CommonModule.ФильтрацияЗагрузкиТестов</commonModules>
<catalogs>Catalog.Встречи</catalogs>
<catalogs>Catalog.Товары</catalogs>
<documents>Document.ПриходТовара</documents>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="UTF-8"?>
<cmi:CommandInterface xmlns:cmi="http://g5.1c.ru/v8/dt/cmi"/>

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Subsystem xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="3c1c26fe-1188-4ffd-84a4-f14a6378c77a">
<name>ЗагрузкаТестов</name>
<synonym>
<key>ru</key>
<value>Загрузка тестов</value>
</synonym>
<includeHelpInContents>true</includeHelpInContents>
<includeInCommandInterface>true</includeInCommandInterface>
<content>CommonModule.ФильтрацияЗагрузкиТестов</content>
<parentSubsystem>Subsystem.Тесты_ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий</parentSubsystem>
</mdclass:Subsystem>

View File

@ -6,6 +6,7 @@
<value>Обработчики событий</value>
</synonym>
<includeHelpInContents>true</includeHelpInContents>
<subsystems>ЗагрузкаТестов</subsystems>
<subsystems>Инициализация</subsystems>
<parentSubsystem>Subsystem.Тесты_ЮТПодключаемыеМодули</parentSubsystem>
</mdclass:Subsystem>