diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйВызовСервера/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйВызовСервера/Module.bsl
index 4c6f0886..385241a5 100644
--- a/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйВызовСервера/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйВызовСервера/Module.bsl
@@ -29,8 +29,7 @@
// Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов, структура набора см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
Функция ВыполнитьГруппуНаборовТестов(Знач ИдентификаторыТестовыхНаборов, Знач ИдентификаторТестовогоМодуля) Экспорт
- АдресХранилища = ЮТКонтекстСлужебный.ЗначениеКонтекста("ХранилищеТестовыхСценариев");
- Хранилище = ПолучитьИзВременногоХранилища(АдресХранилища);
+ Хранилище = ЮТИсполнительСлужебныйСервер.СерверноеХранилищеТестов();
ТестовыйМодуль = Хранилище[ИдентификаторТестовогоМодуля];
Наборы = Новый Массив();
@@ -49,33 +48,7 @@
// ТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
Процедура СохранитьИнформациюОТестовыхСценариях(Знач ТестовыеМодули) Экспорт
- Хранилище = Новый Соответствие();
-
- Для Каждого Модуль Из ТестовыеМодули Цикл
-
- Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоМодуля(Модуль);
- Хранилище.Вставить(Идентификатор, Модуль);
-
- Для Каждого Набор Из Модуль.НаборыТестов Цикл
-
- Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоНабора(Модуль, Набор);
- Хранилище.Вставить(Идентификатор, Набор);
-
- Для Каждого Тест Из Набор.Тесты Цикл
-
- Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТеста(Модуль, Набор, Тест);
- Хранилище.Вставить(Идентификатор, Тест);
-
- КонецЦикла;
-
- КонецЦикла;
-
- Модуль.НаборыТестов = Новый Массив; // Уже не нужно, поэтому очистим
-
- КонецЦикла;
-
- АдресХранилища = ПоместитьВоВременноеХранилище(Хранилище, Новый УникальныйИдентификатор());
- ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("ХранилищеТестовыхСценариев", АдресХранилища);
+ ЮТИсполнительСлужебныйСервер.СохранитьИнформациюОТестовыхСценариях(ТестовыеМодули);
КонецПроцедуры
diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиентСервер/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиентСервер/Module.bsl
index 39477a6e..7e41b254 100644
--- a/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиентСервер/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйКлиентСервер/Module.bsl
@@ -143,7 +143,7 @@
Процедура ПередКаждымТестом(ТестовыйМодуль, Набор, Тест, ВТранзакции)
- ЮТСобытияСлужебный.УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор, Тест);
+ ЮТКонтекстИсполненияСлужебныйКлиентСервер.УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор, Тест);
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
ВТранзакции = ЮТНастройкиВыполнения.ВТранзакции();
Если ВТранзакции Тогда
diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйСервер/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйСервер/Module.bsl
new file mode 100644
index 00000000..72e42490
--- /dev/null
+++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйСервер/Module.bsl
@@ -0,0 +1,70 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйСервер/ЮТИсполнительСлужебныйСервер.mdo b/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйСервер/ЮТИсполнительСлужебныйСервер.mdo
new file mode 100644
index 00000000..e6d52a14
--- /dev/null
+++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительСлужебныйСервер/ЮТИсполнительСлужебныйСервер.mdo
@@ -0,0 +1,9 @@
+
+
+ ЮТИсполнительСлужебныйСервер
+
+ ru
+ Исполнитель служебный сервер
+
+ true
+
diff --git a/exts/yaxunit/src/CommonModules/ЮТКоллекции/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТКоллекции/Module.bsl
index 942853ee..99a62fbd 100644
--- a/exts/yaxunit/src/CommonModules/ЮТКоллекции/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТКоллекции/Module.bsl
@@ -470,6 +470,30 @@
КонецФункции
+// Возвращает массив с обратной последовательностью элементов
+//
+// Параметры:
+// Значения - Массив Из Произвольный
+//
+// Возвращаемое значение:
+// Массив Из Произвольный - Перевернутый массив
+Функция ОбратныйПорядок(Значения) Экспорт
+
+ Если НЕ ЗначениеЗаполнено(Значения) Тогда
+ Возврат Новый Массив;
+ КонецЕсли;
+
+ ВГраница = Значения.ВГраница();
+ Результат = Новый Массив(Значения.Количество());
+
+ Для Инд = 0 По ВГраница Цикл
+ Результат[Инд] = Значения[ВГраница - Инд];
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
diff --git a/exts/yaxunit/src/CommonModules/ЮТКонтекстИсполненияСлужебныйКлиентСервер/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТКонтекстИсполненияСлужебныйКлиентСервер/Module.bsl
new file mode 100644
index 00000000..3e17618d
--- /dev/null
+++ b/exts/yaxunit/src/CommonModules/ЮТКонтекстИсполненияСлужебныйКлиентСервер/Module.bsl
@@ -0,0 +1,89 @@
+//©///////////////////////////////////////////////////////////////////////////©//
+//
+// 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/exts/yaxunit/src/CommonModules/ЮТКонтекстИсполненияСлужебныйКлиентСервер/ЮТКонтекстИсполненияСлужебныйКлиентСервер.mdo b/exts/yaxunit/src/CommonModules/ЮТКонтекстИсполненияСлужебныйКлиентСервер/ЮТКонтекстИсполненияСлужебныйКлиентСервер.mdo
new file mode 100644
index 00000000..08614cf3
--- /dev/null
+++ b/exts/yaxunit/src/CommonModules/ЮТКонтекстИсполненияСлужебныйКлиентСервер/ЮТКонтекстИсполненияСлужебныйКлиентСервер.mdo
@@ -0,0 +1,11 @@
+
+
+ ЮТКонтекстИсполненияСлужебныйКлиентСервер
+
+ ru
+ Контекст исполнения служебный клиент сервер
+
+ true
+ true
+ true
+
diff --git a/exts/yaxunit/src/CommonModules/ЮТПодключаемыеМодулиСлужебный/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТПодключаемыеМодулиСлужебный/Module.bsl
index 4fc92c72..f48dbde8 100644
--- a/exts/yaxunit/src/CommonModules/ЮТПодключаемыеМодулиСлужебный/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТПодключаемыеМодулиСлужебный/Module.bsl
@@ -36,7 +36,7 @@
Клиентские = Истина;
#КонецЕсли
- Возврат ЮТПодключаемыеМодулиСлужебныйВызовСервера.ОбработчикиСобытий(Подсистема, Серверные, Клиентские);
+ Возврат ЮТСлужебныйПовторногоИспользования.ОбработчикиСобытий(Подсистема, Серверные, Клиентские);
КонецФункции
diff --git a/exts/yaxunit/src/CommonModules/ЮТПодключаемыеМодулиСлужебныйВызовСервера/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТПодключаемыеМодулиСлужебныйВызовСервера/Module.bsl
index 56697ddf..c1ddf59f 100644
--- a/exts/yaxunit/src/CommonModules/ЮТПодключаемыеМодулиСлужебныйВызовСервера/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТПодключаемыеМодулиСлужебныйВызовСервера/Module.bsl
@@ -34,6 +34,9 @@
КонецЦикла;
+ // Изначально планировалось на основе состава подсистем, но он не позволяет задать четкий порядок элементов.
+ ПриоритезироватьОбработчикиСобытий(ГруппаОбработчиков, Модули);
+
Возврат Модули;
КонецФункции
@@ -103,4 +106,24 @@
КонецФункции
+Процедура ПриоритезироватьОбработчикиСобытий(ГруппаОбработчиков, Модули)
+
+ Если ГруппаОбработчиков = "ИсполнениеТестов" Тогда
+ Порядок = "ЮТЛогированиеСлужебный, ЮТИсполнительСлужебныйКлиент, ЮТКонтекстИсполненияСлужебныйКлиентСервер";
+ Иначе
+ Возврат;
+ КонецЕсли;
+
+ ЭлементыПорядка = ЮТКоллекции.ОбратныйПорядок(ЮТСтроки.РазделитьСтроку(Порядок, ","));
+
+ Для Каждого Элемент Из ЭлементыПорядка Цикл
+ Индекс = Модули.Найти(Элемент);
+ Если Индекс <> Неопределено Тогда
+ Модули.Удалить(Индекс);
+ Модули.Вставить(0, Элемент);
+ КонецЕсли;
+ КонецЦикла;
+
+КонецПроцедуры
+
#КонецОбласти
diff --git a/exts/yaxunit/src/CommonModules/ЮТСлужебныйПовторногоИспользования/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТСлужебныйПовторногоИспользования/Module.bsl
index 693f6199..902f0293 100644
--- a/exts/yaxunit/src/CommonModules/ЮТСлужебныйПовторногоИспользования/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТСлужебныйПовторногоИспользования/Module.bsl
@@ -98,4 +98,10 @@
КонецФункции
+Функция ОбработчикиСобытий(Знач Подсистема, Знач Серверные = Истина, Знач Клиентские = Истина) Экспорт
+
+ Возврат ЮТПодключаемыеМодулиСлужебныйВызовСервера.ОбработчикиСобытий(Подсистема, Серверные, Клиентские);
+
+КонецФункции
+
#КонецОбласти
diff --git a/exts/yaxunit/src/CommonModules/ЮТСобытияСлужебный/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТСобытияСлужебный/Module.bsl
index d0e2baae..1c418d78 100644
--- a/exts/yaxunit/src/CommonModules/ЮТСобытияСлужебный/Module.bsl
+++ b/exts/yaxunit/src/CommonModules/ЮТСобытияСлужебный/Module.bsl
@@ -236,27 +236,6 @@
#Область СлужебныеПроцедурыИФункции
-Процедура УстановитьКонтекстИсполнения(ТестовыйМодуль = Неопределено, Набор = Неопределено, Тест = Неопределено) Экспорт
-
- Уровни = ЮТФабрика.УровниИсполнения();
- КонтекстИсполнения = ЮТКонтекстСлужебный.КонтекстИсполнения();
-
- КонтекстИсполнения.Модуль = ТестовыйМодуль;
- КонтекстИсполнения.Набор = Набор;
- КонтекстИсполнения.Тест = Тест;
-
- Если Тест <> Неопределено Тогда
- КонтекстИсполнения.Уровень = Уровни.Тест;
- ИначеЕсли Набор <> Неопределено Тогда
- КонтекстИсполнения.Уровень = Уровни.НаборТестов;
- ИначеЕсли ТестовыйМодуль <> Неопределено Тогда
- КонтекстИсполнения.Уровень = Уровни.Модуль;
- Иначе
- КонтекстИсполнения.Уровень = Неопределено;
- КонецЕсли;
-
-КонецПроцедуры
-
Процедура ВызватьОбработкуСобытийИсполненияТестов(События, ОписаниеСобытия)
Для ы = 0 По События.ВГраница() Цикл
@@ -281,98 +260,83 @@
Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия);
Если ЭтоСобытиеПеред(ИмяСобытия) Тогда
- ВыполнитьОбработкуСобытияИсполненияТеста(ИмяСобытия, ОписаниеСобытия);
+
Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры);
#Если Клиент Тогда
СерверныеОшибки = ВызватьСервернуюОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия);
ЮТКоллекции.ДополнитьМассив(Ошибки, СерверныеОшибки);
#КонецЕсли
ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия);
+
Иначе
+
ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия);
Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры);
#Если Клиент Тогда
СерверныеОшибки = ВызватьСервернуюОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия);
ЮТКоллекции.ДополнитьМассив(Ошибки, СерверныеОшибки);
#КонецЕсли
- ВыполнитьОбработкуСобытияИсполненияТеста(ИмяСобытия, ОписаниеСобытия);
+
КонецЕсли;
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
КонецПроцедуры
-Процедура ВыполнитьОбработкуСобытияИсполненияТеста(ИмяСобытия, ОписаниеСобытия)
-
- Если ИмяСобытия = "ПередТестом" Или ИмяСобытия = "ПослеТеста" Тогда
- Возврат;
- КонецЕсли;
-
-#Если ВебКлиент Тогда
- ЮТИсключения.МетодНеДоступен("ЮТСобытияСлужебный.ВыполнитьОбработкуСобытияИсполненияТеста");
-#Иначе
- ИмяМетода = "Обработчик" + ИмяСобытия;
- //@skip-check server-execution-safe-mode
- Выполнить(ИмяМетода + "(ОписаниеСобытия)");
-#КонецЕсли
-
-КонецПроцедуры
-
Функция ВызватьСервернуюОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия)
- ОписаниеСобытияСервер = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(Неопределено);
+ Параметры = Новый Массив(4);
+ Параметры[0] = ИмяСобытия;
Если ОписаниеСобытия.Модуль <> Неопределено Тогда
- ОписаниеСобытияСервер.Модуль = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоМодуля(ОписаниеСобытия.Модуль);
+ Параметры[1] = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоМодуля(ОписаниеСобытия.Модуль);
КонецЕсли;
Если ОписаниеСобытия.Набор <> Неопределено Тогда
- ОписаниеСобытияСервер.Набор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоНабора(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор);
+ Параметры[2] = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоНабора(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор);
КонецЕсли;
Если ОписаниеСобытия.Тест <> Неопределено Тогда
- ОписаниеСобытияСервер.Тест = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТеста(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор, ОписаниеСобытия.Тест);
+ Параметры[3] = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТеста(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор, ОписаниеСобытия.Тест);
КонецЕсли;
- Параметры = ЮТКоллекции.ЗначениеВМассиве(ИмяСобытия, ОписаниеСобытияСервер);
Возврат ЮТМетодыСлужебный.ВызватьФункциюКонфигурацииНаСервере("ЮТСобытияСлужебный", "СерверныйВызовОбработкиСобытияИсполненияТестов", Параметры);
КонецФункции
-Функция СерверныйВызовОбработкиСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия) Экспорт
+#Если Сервер Тогда
+Функция СерверныйВызовОбработкиСобытияИсполненияТестов(ИмяСобытия, ИдентификаторМодуля = Неопределено, ИдентификаторНабора = Неопределено, ИдентификаторТеста = Неопределено) Экспорт
- АдресХранилища = ЮТКонтекстСлужебный.ЗначениеКонтекста("ХранилищеТестовыхСценариев");
- Хранилище = ПолучитьИзВременногоХранилища(АдресХранилища);
+ Хранилище = ЮТИсполнительСлужебныйСервер.СерверноеХранилищеТестов();
+ ОписаниеСобытия = ЮТФабрикаСлужебный.ОписаниеСобытияИсполненияТестов(Неопределено);
- Если ОписаниеСобытия.Модуль <> Неопределено Тогда
- ОписаниеСобытия.Модуль = Хранилище[ОписаниеСобытия.Модуль];
+ Если ИдентификаторМодуля <> Неопределено Тогда
+ ОписаниеСобытия.Модуль = Хранилище[ИдентификаторМодуля];
КонецЕсли;
- Если ОписаниеСобытия.Набор <> Неопределено Тогда
- ОписаниеСобытия.Набор = Хранилище[ОписаниеСобытия.Набор];
+ Если ИдентификаторНабора <> Неопределено Тогда
+ ОписаниеСобытия.Набор = Хранилище[ИдентификаторНабора];
КонецЕсли;
- Если ОписаниеСобытия.Тест <> Неопределено Тогда
- ОписаниеСобытия.Тест = Хранилище[ОписаниеСобытия.Тест];
- КонецЕсли;
-
- Если ЭтоСобытиеПеред(ИмяСобытия) Тогда
- ВыполнитьОбработкуСобытияИсполненияТеста(ИмяСобытия, ОписаниеСобытия);
+ Если ИдентификаторТеста <> Неопределено Тогда
+ ОписаниеСобытия.Тест = Хранилище[ИдентификаторТеста];
КонецЕсли;
Результат = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия));
- Если ЭтоСобытиеПосле(ИмяСобытия) Тогда
- ВыполнитьОбработкуСобытияИсполненияТеста(ИмяСобытия, ОписаниеСобытия);
- КонецЕсли;
-
Возврат Результат;
КонецФункции
+#КонецЕсли
Функция ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, Подсистема, ПараметрыСобытия)
ОбработчикиСобытий = ЮТПодключаемыеМодулиСлужебный.ОбработчикиСобытий(Подсистема);
+
+ Если ЭтоСобытиеПосле(ИмяСобытия) Тогда
+ ОбработчикиСобытий = ЮТКоллекции.ОбратныйПорядок(ОбработчикиСобытий);
+ КонецЕсли;
+
Ошибки = Новый Массив();
Для Каждого ИмяМодуля Из ОбработчикиСобытий Цикл
@@ -479,57 +443,4 @@
КонецФункции
-#Область ОбработчикиСобытийИсполненияТестов
-
-//@skip-check module-unused-method
-Процедура ОбработчикПередВсемиТестами(ОписаниеСобытия)
-
- УстановитьКонтекстИсполнения(ОписаниеСобытия.Модуль);
- ЮТКонтекстСлужебный.УстановитьКонтекстМодуля();
-
-КонецПроцедуры
-
-//@skip-check module-unused-method
-Процедура ОбработчикПередТестовымНабором(ОписаниеСобытия)
-
- УстановитьКонтекстИсполнения(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор);
- ЮТКонтекстСлужебный.УстановитьКонтекстНабораТестов();
-
-КонецПроцедуры
-
-//@skip-check module-unused-method
-Процедура ОбработчикПередКаждымТестом(ОписаниеСобытия)
-
-#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
- ПолучитьСообщенияПользователю(Истина);
-#КонецЕсли
-
- // Установка контекста исполнения вызывается в см. ЮТИсполнительСлужебныйКлиентСервер.ПередКаждымТестом
- ЮТКонтекстСлужебный.УстановитьКонтекстТеста();
-
-КонецПроцедуры
-
-//@skip-check module-unused-method
-Процедура ОбработчикПослеКаждогоТеста(ОписаниеСобытия)
-
- УстановитьКонтекстИсполнения(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор);
-
-КонецПроцедуры
-
-//@skip-check module-unused-method
-Процедура ОбработчикПослеТестовогоНабора(ОписаниеСобытия)
-
- УстановитьКонтекстИсполнения(ОписаниеСобытия.Модуль);
-
-КонецПроцедуры
-
-//@skip-check module-unused-method
-Процедура ОбработчикПослеВсехТестов(ОписаниеСобытия)
-
- УстановитьКонтекстИсполнения();
-
-КонецПроцедуры
-
-#КонецОбласти
-
#КонецОбласти
diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo
index 31482c52..c2052d63 100644
--- a/exts/yaxunit/src/Configuration/Configuration.mdo
+++ b/exts/yaxunit/src/Configuration/Configuration.mdo
@@ -73,12 +73,14 @@
CommonModule.ЮТИсполнительСлужебныйГлобальный
CommonModule.ЮТИсполнительСлужебныйКлиент
CommonModule.ЮТИсполнительСлужебныйКлиентСервер
+ CommonModule.ЮТИсполнительСлужебныйСервер
CommonModule.ЮТКоллекции
CommonModule.ЮТКомпоненты
CommonModule.ЮТКомпонентыСлужебныйВызовСервера
CommonModule.ЮТКомпонентыСлужебныйКлиент
CommonModule.ЮТКонструкторВариантов
CommonModule.ЮТКонструкторТестовыхДанныхСлужебный
+ CommonModule.ЮТКонтекстИсполненияСлужебныйКлиентСервер
CommonModule.ЮТКонтекстСлужебный
CommonModule.ЮТКонтекстСлужебныйВызовСервера
CommonModule.ЮТКонтекстСлужебныйКлиент
diff --git a/exts/yaxunit/src/Subsystems/ЮТДвижок/Subsystems/ЮТСервис/ЮТСервис.mdo b/exts/yaxunit/src/Subsystems/ЮТДвижок/Subsystems/ЮТСервис/ЮТСервис.mdo
index ccb510e7..49ce3357 100644
--- a/exts/yaxunit/src/Subsystems/ЮТДвижок/Subsystems/ЮТСервис/ЮТСервис.mdo
+++ b/exts/yaxunit/src/Subsystems/ЮТДвижок/Subsystems/ЮТСервис/ЮТСервис.mdo
@@ -17,6 +17,7 @@
CommonModule.ЮТКомпоненты
CommonModule.ЮТКомпонентыСлужебныйВызовСервера
CommonModule.ЮТКомпонентыСлужебныйКлиент
+ CommonModule.ЮТКонтекстИсполненияСлужебныйКлиентСервер
CommonModule.ЮТЛогированиеСлужебныйВызовСервера
CommonModule.ЮТЛогИсполненияТестаСлужебный
CommonModule.ЮТЛокальСлужебный
diff --git a/exts/yaxunit/src/Subsystems/ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/Subsystems/ИсполнениеТестов/ИсполнениеТестов.mdo b/exts/yaxunit/src/Subsystems/ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/Subsystems/ИсполнениеТестов/ИсполнениеТестов.mdo
index cabd5580..64a73d8b 100644
--- a/exts/yaxunit/src/Subsystems/ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/Subsystems/ИсполнениеТестов/ИсполнениеТестов.mdo
+++ b/exts/yaxunit/src/Subsystems/ЮТПодключаемыеМодули/Subsystems/ОбработчикиСобытий/Subsystems/ИсполнениеТестов/ИсполнениеТестов.mdo
@@ -8,6 +8,7 @@
true
CommonModule.МокитоСлужебный
CommonModule.ЮТИсполнительСлужебныйКлиент
+ CommonModule.ЮТКонтекстИсполненияСлужебныйКлиентСервер
CommonModule.ЮТТестовыеДанныеСлужебный
CommonModule.ЮТУтверждения
Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий