From b8281c1a63874969f2133dc9ca98bb391e50e772 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Thu, 30 May 2024 00:11:41 +0300 Subject: [PATCH] =?UTF-8?q?#352=20=D0=92=D0=BE=D0=B7=D0=BC=D0=BE=D0=B6?= =?UTF-8?q?=D0=BD=D0=BE=D1=81=D1=82=D1=8C=20=D0=BE=D1=82=D0=BA=D0=B0=D0=B7?= =?UTF-8?q?=D0=B0=20=D0=BE=D1=82=20=D0=B7=D0=B0=D0=B3=D1=80=D1=83=D0=B7?= =?UTF-8?q?=D0=BA=D0=B8=20=D1=82=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ЮТИсполнительСлужебныйКлиент/Module.bsl | 31 ++++++----- .../ЮТСобытияСлужебный/Module.bsl | 52 ++++++++++++------- .../ЮТФильтрацияСлужебный/Module.bsl | 18 +++++-- .../ОМ_ЮТФильтрацияСлужебный/Module.bsl | 17 ++++++ .../ФильтрацияЗагрузкиТестов/Module.bsl | 29 +++++++++++ .../ФильтрацияЗагрузкиТестов.mdo | 11 ++++ tests/src/Configuration/Configuration.mdo | 1 + .../ОбработчикиСобытий/Subsystems/ЗагрузкаТестов/CommandInterface.cmi | 2 + .../ОбработчикиСобытий/Subsystems/ЗагрузкаТестов/ЗагрузкаТестов.mdo | 12 +++++ .../Subsystems/ОбработчикиСобытий/ОбработчикиСобытий.mdo | 1 + 10 files changed, 139 insertions(+), 35 deletions(-) create mode 100644 tests/src/CommonModules/ФильтрацияЗагрузкиТестов/Module.bsl create mode 100644 tests/src/CommonModules/ФильтрацияЗагрузкиТестов/ФильтрацияЗагрузкиТестов.mdo create mode 100644 tests/src/Subsystems/Тесты_ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/Subsystems/ЗагрузкаТестов/CommandInterface.cmi create mode 100644 tests/src/Subsystems/Тесты_ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/Subsystems/ЗагрузкаТестов/ЗагрузкаТестов.mdo diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиент/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиент/Module.bsl index 3a132dcc..ab4b0355 100644 --- a/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиент/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиент/Module.bsl @@ -177,20 +177,27 @@ ЮТЛогирование.Информация("Загрузка тестовых сценариев"); ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ЗагрузкаТестов); - ЮТСобытияСлужебный.ПередЧтениеСценариев(); - ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска); - ЮТСобытияСлужебный.ПослеЧтенияСценариев(ТестовыеМодули); + Отказ = Ложь; + ЮТСобытияСлужебный.ПередЧтениеСценариев(Отказ); - ИсполняемыеТестовыеМодули = Новый Массив(); - - Для Каждого ТестовыйМодуль Из ТестовыеМодули Цикл - ИсполняемыйТестовыйМодуль = ИсполняемыйТестовыйМодуль(ТестовыйМодуль); - ИсполняемыеТестовыеМодули.Добавить(ИсполняемыйТестовыйМодуль); - КонецЦикла; - - ЮТСобытияСлужебный.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули); - ДополнительныеПараметры.ИсполняемыеТестовыеМодули = ИсполняемыеТестовыеМодули; + Если Отказ Тогда + ЮТЛогирование.Информация("Загрузка тестовых сценариев отменена"); + ДополнительныеПараметры.ИсполняемыеТестовыеМодули = Новый Массив; + Иначе + ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска); + ЮТСобытияСлужебный.ПослеЧтенияСценариев(ТестовыеМодули); + + ИсполняемыеТестовыеМодули = Новый Массив(); + + Для Каждого ТестовыйМодуль Из ТестовыеМодули Цикл + ИсполняемыйТестовыйМодуль = ИсполняемыйТестовыйМодуль(ТестовыйМодуль); + ИсполняемыеТестовыеМодули.Добавить(ИсполняемыйТестовыйМодуль); + КонецЦикла; + + ЮТСобытияСлужебный.ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули); + ДополнительныеПараметры.ИсполняемыеТестовыеМодули = ИсполняемыеТестовыеМодули; + КонецЕсли; ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры, ИсполняемыеТестовыеМодули); diff --git a/exts/yaxunit/src/CommonModules/ЮТСобытияСлужебный/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТСобытияСлужебный/Module.bsl index e6716cb2..0e2e04ca 100644 --- a/exts/yaxunit/src/CommonModules/ЮТСобытияСлужебный/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТСобытияСлужебный/Module.bsl @@ -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 @@ КонецЦикла; -#Если Клиент Тогда - Если ВызватьСерверныйОбработчик Тогда - Параметры = ЮТКоллекции.ЗначениеВМассиве(ИмяСобытия, Подсистема, ПараметрыСобытия); - ЮТМетодыСлужебный.ВыполнитьНаСервере("ЮТСобытияСлужебный.ВызватьПодключаемыйОбработчикСобытия", Параметры); - КонецЕсли; -#КонецЕсли - Возврат Ошибки; КонецФункции diff --git a/exts/yaxunit/src/CommonModules/ЮТФильтрацияСлужебный/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТФильтрацияСлужебный/Module.bsl index 2a57092d..72ea0e04 100644 --- a/exts/yaxunit/src/CommonModules/ЮТФильтрацияСлужебный/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТФильтрацияСлужебный/Module.bsl @@ -28,13 +28,23 @@ КонецФункции -Функция ЭтоПодходящийМодуль(ОписаниеМодуля) Экспорт +Функция ЭтоПодходящийМодуль(МетаданныеМодуля) Экспорт Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя(); - Возврат ЗначениеЗаполнено(ОписаниеМодуля.Расширение) - И (НЕ Контекст.Фильтр.ЕстьФильтрМодулей ИЛИ Контекст.Фильтр.Модули.Свойство(ОписаниеМодуля.Имя)) - И ЭтоПодходящееРасширение(ОписаниеМодуля.Расширение); + Успешно = ЗначениеЗаполнено(МетаданныеМодуля.Расширение) + И (НЕ Контекст.Фильтр.ЕстьФильтрМодулей ИЛИ Контекст.Фильтр.Модули.Свойство(МетаданныеМодуля.Имя)) + И ЭтоПодходящееРасширение(МетаданныеМодуля.Расширение); + + Если Успешно Тогда + Отказ = Ложь; + ЮТСобытияСлужебный.ФильтрацияТестов_ПроверкаМодуля(МетаданныеМодуля, Отказ); + Если Отказ Тогда + Успешно = Ложь; + КонецЕсли; + КонецЕсли; + + Возврат Успешно; КонецФункции diff --git a/tests/src/CommonModules/ОМ_ЮТФильтрацияСлужебный/Module.bsl b/tests/src/CommonModules/ОМ_ЮТФильтрацияСлужебный/Module.bsl index 85c7680f..029bf59d 100644 --- a/tests/src/CommonModules/ОМ_ЮТФильтрацияСлужебный/Module.bsl +++ b/tests/src/CommonModules/ОМ_ЮТФильтрацияСлужебный/Module.bsl @@ -30,6 +30,7 @@ .Добавитьтест("Фильтр_ТегиНабора") .Добавитьтест("Фильтр_ТегиТеста") .Добавитьтест("Фильтр_Наборы") + .Добавитьтест("Фильтр_СобытиеФильтрацииМодуля") ; КонецПроцедуры @@ -309,6 +310,22 @@ КонецПроцедуры +Процедура Фильтр_СобытиеФильтрацииМодуля() Экспорт + + ИмяМодуля = "ОМ_ЮТФильтрацияСлужебный"; + ОписаниеМодуля = МетаданныеМодуля(ИмяМодуля, "test"); + + УстановитьНовыйФильтр(ИмяМодуля); + + Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля); + ЮТест.ОжидаетЧто(Результат, "Без фильтрации").Равно(Истина); + + ЮТест.Контекст().УстановитьЗначение(ИмяМодуля, Истина); + Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля); + ЮТест.ОжидаетЧто(Результат, "С фильтрацией").Равно(Ложь); + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/tests/src/CommonModules/ФильтрацияЗагрузкиТестов/Module.bsl b/tests/src/CommonModules/ФильтрацияЗагрузкиТестов/Module.bsl new file mode 100644 index 00000000..2a2beee6 --- /dev/null +++ b/tests/src/CommonModules/ФильтрацияЗагрузкиТестов/Module.bsl @@ -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. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ФильтрацияТестов_ПроверкаМодуля(МетаданныеМодуля, Отказ) Экспорт + + Если ЮТест.КонтекстТеста() <> Неопределено И ЮТест.КонтекстТеста().Свойство(МетаданныеМодуля.Имя) Тогда + Отказ = Истина; + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти diff --git a/tests/src/CommonModules/ФильтрацияЗагрузкиТестов/ФильтрацияЗагрузкиТестов.mdo b/tests/src/CommonModules/ФильтрацияЗагрузкиТестов/ФильтрацияЗагрузкиТестов.mdo new file mode 100644 index 00000000..4c6f31da --- /dev/null +++ b/tests/src/CommonModules/ФильтрацияЗагрузкиТестов/ФильтрацияЗагрузкиТестов.mdo @@ -0,0 +1,11 @@ + + + ФильтрацияЗагрузкиТестов + + ru + Фильтрация загрузки тестов + + true + true + true + diff --git a/tests/src/Configuration/Configuration.mdo b/tests/src/Configuration/Configuration.mdo index 8d8449f8..cabfbdad 100644 --- a/tests/src/Configuration/Configuration.mdo +++ b/tests/src/Configuration/Configuration.mdo @@ -67,6 +67,7 @@ CommonModule.ПомощникТестированияВызовСервера CommonModule.ТегиТестов CommonModule.ТестовыеДанные + CommonModule.ФильтрацияЗагрузкиТестов Catalog.Встречи Catalog.Товары Document.ПриходТовара diff --git a/tests/src/Subsystems/Тесты_ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/Subsystems/ЗагрузкаТестов/CommandInterface.cmi b/tests/src/Subsystems/Тесты_ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/Subsystems/ЗагрузкаТестов/CommandInterface.cmi new file mode 100644 index 00000000..0cf6de8a --- /dev/null +++ b/tests/src/Subsystems/Тесты_ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/Subsystems/ЗагрузкаТестов/CommandInterface.cmi @@ -0,0 +1,2 @@ + + diff --git a/tests/src/Subsystems/Тесты_ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/Subsystems/ЗагрузкаТестов/ЗагрузкаТестов.mdo b/tests/src/Subsystems/Тесты_ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/Subsystems/ЗагрузкаТестов/ЗагрузкаТестов.mdo new file mode 100644 index 00000000..4ef01163 --- /dev/null +++ b/tests/src/Subsystems/Тесты_ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/Subsystems/ЗагрузкаТестов/ЗагрузкаТестов.mdo @@ -0,0 +1,12 @@ + + + ЗагрузкаТестов + + ru + Загрузка тестов + + true + true + CommonModule.ФильтрацияЗагрузкиТестов + Subsystem.Тесты_ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий + diff --git a/tests/src/Subsystems/Тесты_ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/ОбработчикиСобытий.mdo b/tests/src/Subsystems/Тесты_ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/ОбработчикиСобытий.mdo index 487d28ea..8b82dbe2 100644 --- a/tests/src/Subsystems/Тесты_ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/ОбработчикиСобытий.mdo +++ b/tests/src/Subsystems/Тесты_ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/ОбработчикиСобытий.mdo @@ -6,6 +6,7 @@ Обработчики событий true + ЗагрузкаТестов Инициализация Subsystem.Тесты_ЮТПодключаемыеМодули