1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-02-01 19:14:35 +02:00

#337 Изменение алгоритма работы с событиями исполнения тестов

This commit is contained in:
alkoleft 2024-05-27 17:16:12 +03:00
parent 86791c0d5d
commit 86bec7a937
14 changed files with 265 additions and 145 deletions

View File

@ -29,8 +29,7 @@
// Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов, структура набора см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоНабораТестов
Функция ВыполнитьГруппуНаборовТестов(Знач ИдентификаторыТестовыхНаборов, Знач ИдентификаторТестовогоМодуля) Экспорт
АдресХранилища = ЮТКонтекстСлужебный.ЗначениеКонтекста("ХранилищеТестовыхСценариев");
Хранилище = ПолучитьИзВременногоХранилища(АдресХранилища);
Хранилище = ЮТИсполнительСлужебныйСервер.СерверноеХранилищеТестов();
ТестовыйМодуль = Хранилище[ИдентификаторТестовогоМодуля];
Наборы = Новый Массив();
@ -49,33 +48,7 @@
// ТестовыеМодули - Массив из см. ЮТФабрикаСлужебный.ОписаниеИсполняемогоТестовогоМодуля
Процедура СохранитьИнформациюОТестовыхСценариях(Знач ТестовыеМодули) Экспорт
Хранилище = Новый Соответствие();
Для Каждого Модуль Из ТестовыеМодули Цикл
Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоМодуля(Модуль);
Хранилище.Вставить(Идентификатор, Модуль);
Для Каждого Набор Из Модуль.НаборыТестов Цикл
Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоНабора(Модуль, Набор);
Хранилище.Вставить(Идентификатор, Набор);
Для Каждого Тест Из Набор.Тесты Цикл
Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТеста(Модуль, Набор, Тест);
Хранилище.Вставить(Идентификатор, Тест);
КонецЦикла;
КонецЦикла;
Модуль.НаборыТестов = Новый Массив; // Уже не нужно, поэтому очистим
КонецЦикла;
АдресХранилища = ПоместитьВоВременноеХранилище(Хранилище, Новый УникальныйИдентификатор());
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("ХранилищеТестовыхСценариев", АдресХранилища);
ЮТИсполнительСлужебныйСервер.СохранитьИнформациюОТестовыхСценариях(ТестовыеМодули);
КонецПроцедуры

View File

@ -143,7 +143,7 @@
Процедура ПередКаждымТестом(ТестовыйМодуль, Набор, Тест, ВТранзакции)
ЮТСобытияСлужебный.УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор, Тест);
ЮТКонтекстИсполненияСлужебныйКлиентСервер.УстановитьКонтекстИсполнения(ТестовыйМодуль, Набор, Тест);
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
ВТранзакции = ЮТНастройкиВыполнения.ВТранзакции();
Если ВТранзакции Тогда

View File

@ -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.
//
//©///////////////////////////////////////////////////////////////////////////©//
#Область СлужебныйПрограммныйИнтерфейс
Функция СерверноеХранилищеТестов() Экспорт
АдресХранилища = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаХранилище());
Возврат ПолучитьИзВременногоХранилища(АдресХранилища);
КонецФункции
Процедура СохранитьИнформациюОТестовыхСценариях(ТестовыеМодули) Экспорт
Хранилище = Новый Соответствие();
Для Каждого Модуль Из ТестовыеМодули Цикл
Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоМодуля(Модуль);
Хранилище.Вставить(Идентификатор, Модуль);
Для Каждого Набор Из Модуль.НаборыТестов Цикл
Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТестовогоНабора(Модуль, Набор);
Хранилище.Вставить(Идентификатор, Набор);
Для Каждого Тест Из Набор.Тесты Цикл
Идентификатор = ЮТИсполнительСлужебныйКлиентСервер.ИдентификаторТеста(Модуль, Набор, Тест);
Хранилище.Вставить(Идентификатор, Тест);
КонецЦикла;
КонецЦикла;
Модуль.НаборыТестов = Новый Массив; // Уже не нужно, поэтому очистим
КонецЦикла;
АдресХранилища = ПоместитьВоВременноеХранилище(Хранилище, Новый УникальныйИдентификатор());
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекстаХранилище(), АдресХранилища);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ИмяКонтекстаХранилище()
Возврат "ХранилищеТестовыхСценариев";
КонецФункции
#КонецОбласти

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="43e3db9e-b607-4673-9810-12dc01fabf62">
<name>ЮТИсполнительСлужебныйСервер</name>
<synonym>
<key>ru</key>
<value>Исполнитель служебный сервер</value>
</synonym>
<server>true</server>
</mdclass:CommonModule>

View File

@ -470,6 +470,30 @@
КонецФункции
// Возвращает массив с обратной последовательностью элементов
//
// Параметры:
// Значения - Массив Из Произвольный
//
// Возвращаемое значение:
// Массив Из Произвольный - Перевернутый массив
Функция ОбратныйПорядок(Значения) Экспорт
Если НЕ ЗначениеЗаполнено(Значения) Тогда
Возврат Новый Массив;
КонецЕсли;
ВГраница = Значения.ВГраница();
Результат = Новый Массив(Значения.Количество());
Для Инд = 0 По ВГраница Цикл
Результат[Инд] = Значения[ВГраница - Инд];
КонецЦикла;
Возврат Результат;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции

View File

@ -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.
//
//©///////////////////////////////////////////////////////////////////////////©//
#Область СлужебныйПрограммныйИнтерфейс
Процедура УстановитьКонтекстИсполнения(ТестовыйМодуль = Неопределено, Набор = Неопределено, Тест = Неопределено) Экспорт
Уровни = ЮТФабрика.УровниИсполнения();
КонтекстИсполнения = ЮТКонтекстСлужебный.КонтекстИсполнения();
КонтекстИсполнения.Модуль = ТестовыйМодуль;
КонтекстИсполнения.Набор = Набор;
КонтекстИсполнения.Тест = Тест;
Если Тест <> Неопределено Тогда
КонтекстИсполнения.Уровень = Уровни.Тест;
ИначеЕсли Набор <> Неопределено Тогда
КонтекстИсполнения.Уровень = Уровни.НаборТестов;
ИначеЕсли ТестовыйМодуль <> Неопределено Тогда
КонтекстИсполнения.Уровень = Уровни.Модуль;
Иначе
КонтекстИсполнения.Уровень = Неопределено;
КонецЕсли;
КонецПроцедуры
Процедура ПередВсемиТестами(ОписаниеСобытия) Экспорт
УстановитьКонтекстИсполнения(ОписаниеСобытия.Модуль);
ЮТКонтекстСлужебный.УстановитьКонтекстМодуля();
КонецПроцедуры
Процедура ПередТестовымНабором(ОписаниеСобытия) Экспорт
УстановитьКонтекстИсполнения(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор);
ЮТКонтекстСлужебный.УстановитьКонтекстНабораТестов();
КонецПроцедуры
Процедура ПередКаждымТестом(ОписаниеСобытия) Экспорт
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
ПолучитьСообщенияПользователю(Истина);
#КонецЕсли
// Установка контекста исполнения вызывается в см. ЮТИсполнительСлужебныйКлиентСервер.ПередКаждымТестом
ЮТКонтекстСлужебный.УстановитьКонтекстТеста();
КонецПроцедуры
Процедура ПослеКаждогоТеста(ОписаниеСобытия) Экспорт
УстановитьКонтекстИсполнения(ОписаниеСобытия.Модуль, ОписаниеСобытия.Набор);
КонецПроцедуры
Процедура ПослеТестовогоНабора(ОписаниеСобытия) Экспорт
УстановитьКонтекстИсполнения(ОписаниеСобытия.Модуль);
КонецПроцедуры
Процедура ПослеВсехТестов(ОписаниеСобытия) Экспорт
УстановитьКонтекстИсполнения();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#КонецОбласти

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="b972b941-c45f-41b2-a233-75451f7a358b">
<name>ЮТКонтекстИсполненияСлужебныйКлиентСервер</name>
<synonym>
<key>ru</key>
<value>Контекст исполнения служебный клиент сервер</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<server>true</server>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

@ -36,7 +36,7 @@
Клиентские = Истина;
#КонецЕсли
Возврат ЮТПодключаемыеМодулиСлужебныйВызовСервера.ОбработчикиСобытий(Подсистема, Серверные, Клиентские);
Возврат ЮТСлужебныйПовторногоИспользования.ОбработчикиСобытий(Подсистема, Серверные, Клиентские);
КонецФункции

View File

@ -34,6 +34,9 @@
КонецЦикла;
// Изначально планировалось на основе состава подсистем, но он не позволяет задать четкий порядок элементов.
ПриоритезироватьОбработчикиСобытий(ГруппаОбработчиков, Модули);
Возврат Модули;
КонецФункции
@ -103,4 +106,24 @@
КонецФункции
Процедура ПриоритезироватьОбработчикиСобытий(ГруппаОбработчиков, Модули)
Если ГруппаОбработчиков = "ИсполнениеТестов" Тогда
Порядок = "ЮТЛогированиеСлужебный, ЮТИсполнительСлужебныйКлиент, ЮТКонтекстИсполненияСлужебныйКлиентСервер";
Иначе
Возврат;
КонецЕсли;
ЭлементыПорядка = ЮТКоллекции.ОбратныйПорядок(ЮТСтроки.РазделитьСтроку(Порядок, ","));
Для Каждого Элемент Из ЭлементыПорядка Цикл
Индекс = Модули.Найти(Элемент);
Если Индекс <> Неопределено Тогда
Модули.Удалить(Индекс);
Модули.Вставить(0, Элемент);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
#КонецОбласти

View File

@ -98,4 +98,10 @@
КонецФункции
Функция ОбработчикиСобытий(Знач Подсистема, Знач Серверные = Истина, Знач Клиентские = Истина) Экспорт
Возврат ЮТПодключаемыеМодулиСлужебныйВызовСервера.ОбработчикиСобытий(Подсистема, Серверные, Клиентские);
КонецФункции
#КонецОбласти

View File

@ -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
Процедура ОбработчикПослеВсехТестов(ОписаниеСобытия)
УстановитьКонтекстИсполнения();
КонецПроцедуры
#КонецОбласти
#КонецОбласти

View File

@ -73,12 +73,14 @@
<commonModules>CommonModule.ЮТИсполнительСлужебныйГлобальный</commonModules>
<commonModules>CommonModule.ЮТИсполнительСлужебныйКлиент</commonModules>
<commonModules>CommonModule.ЮТИсполнительСлужебныйКлиентСервер</commonModules>
<commonModules>CommonModule.ЮТИсполнительСлужебныйСервер</commonModules>
<commonModules>CommonModule.ЮТКоллекции</commonModules>
<commonModules>CommonModule.ЮТКомпоненты</commonModules>
<commonModules>CommonModule.ЮТКомпонентыСлужебныйВызовСервера</commonModules>
<commonModules>CommonModule.ЮТКомпонентыСлужебныйКлиент</commonModules>
<commonModules>CommonModule.ЮТКонструкторВариантов</commonModules>
<commonModules>CommonModule.ЮТКонструкторТестовыхДанныхСлужебный</commonModules>
<commonModules>CommonModule.ЮТКонтекстИсполненияСлужебныйКлиентСервер</commonModules>
<commonModules>CommonModule.ЮТКонтекстСлужебный</commonModules>
<commonModules>CommonModule.ЮТКонтекстСлужебныйВызовСервера</commonModules>
<commonModules>CommonModule.ЮТКонтекстСлужебныйКлиент</commonModules>

View File

@ -17,6 +17,7 @@
<content>CommonModule.ЮТКомпоненты</content>
<content>CommonModule.ЮТКомпонентыСлужебныйВызовСервера</content>
<content>CommonModule.ЮТКомпонентыСлужебныйКлиент</content>
<content>CommonModule.ЮТКонтекстИсполненияСлужебныйКлиентСервер</content>
<content>CommonModule.ЮТЛогированиеСлужебныйВызовСервера</content>
<content>CommonModule.ЮТЛогИсполненияТестаСлужебный</content>
<content>CommonModule.ЮТЛокальСлужебный</content>

View File

@ -8,6 +8,7 @@
<includeHelpInContents>true</includeHelpInContents>
<content>CommonModule.МокитоСлужебный</content>
<content>CommonModule.ЮТИсполнительСлужебныйКлиент</content>
<content>CommonModule.ЮТКонтекстИсполненияСлужебныйКлиентСервер</content>
<content>CommonModule.ЮТТестовыеДанныеСлужебный</content>
<content>CommonModule.ЮТУтверждения</content>
<parentSubsystem>Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий</parentSubsystem>