1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2025-02-07 19:30:17 +02:00

Merge branch 'feature/ONECICD-544' into 'develop'

#ONECICD-544

Closes ONECICD-544

See merge request orais/ci_cd/yaxunit!7
This commit is contained in:
Максимов Валерий Валерьевич (000044217) 2022-09-22 07:53:53 +03:00
commit e3e450c19e
17 changed files with 396 additions and 51 deletions

View File

@ -549,7 +549,7 @@
Если Значение <> Неопределено Тогда
ТипыСсылок = ОбщегоНазначенияКлиентСервер.ПолучитьОписаниеТиповЛюбаяСсылка();
ТипыСсылок = ЮТОбщий.ОписаниеТиповЛюбаяСсылка();
Результат = ТипыСсылок.СодержитТип(ТипЗнч(Значение));
Иначе
@ -564,7 +564,7 @@
Функция ЭтоОбъект(Значение) Экспорт
Если Значение <> Неопределено И ОбщегоНазначенияКлиентСервер.ПеременнаяСодержитСвойство(Значение, "Ссылка") Тогда
Если Значение <> Неопределено И ЮТОбщий.ПеременнаяСодержитСвойство(Значение, "Ссылка") Тогда
Возврат ЭтоСсылка(Значение.Ссылка);

View File

@ -24,7 +24,6 @@
Процедура ИсполняемыеСценарии(ДополнительныеПараметры = Неопределено) Экспорт
// TODO: Test
ЮТТесты
.Тест("Что")
.Тест("Метод")

View File

@ -0,0 +1,89 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// Copyright 2021-2022 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.
//
//©///////////////////////////////////////////////////////////////////////////©//
/////////////////////////////////////////////////////////////////////////////////
// Экспортные процедуры и функции для служебного использования внутри подсистемы
/////////////////////////////////////////////////////////////////////////////////
#Область СлужебныйПрограммныйИнтерфейс
// Варианты.
//
// Параметры:
// Реквизиты - Строка - Реквизиты
//
// Возвращаемое значение:
// ОбщийМодуль
Функция Варианты(Реквизиты) Экспорт
Варианты = Новый Структура("Реквизиты, Варианты, КоличествоРеквизитов", Реквизиты, Новый Массив());
Вариант = Новый Структура(Реквизиты);
Варианты.КоличествоРеквизитов = Вариант.Количество();
ЮТКонтекст.УстановитьЗначениеКонтекста(КлючКонтекста(), Варианты);
Возврат ЮТКонструкторВариантов;
КонецФункции
Функция Добавить(Параметр1, Параметр2 = Неопределено, Параметр3 = Неопределено, Параметр4 = Неопределено, Параметр5 = Неопределено) Экспорт
Варианты = ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста());
Если Варианты.КоличествоРеквизитов = 1 Тогда
Вариант = Новый Структура(Варианты.Реквизиты, Параметр1);
ИначеЕсли Варианты.КоличествоРеквизитов = 2 Тогда
Вариант = Новый Структура(Варианты.Реквизиты, Параметр1, Параметр2);
ИначеЕсли Варианты.КоличествоРеквизитов = 3 Тогда
Вариант = Новый Структура(Варианты.Реквизиты, Параметр1, Параметр2, Параметр3);
ИначеЕсли Варианты.КоличествоРеквизитов = 4 Тогда
Вариант = Новый Структура(Варианты.Реквизиты, Параметр1, Параметр2, Параметр3, Параметр4);
ИначеЕсли Варианты.КоличествоРеквизитов = 5 Тогда
Вариант = Новый Структура(Варианты.Реквизиты, Параметр1, Параметр2, Параметр3, Параметр4, Параметр5);
КонецЕсли;
Варианты.Варианты.Добавить(Вариант);
Возврат ЮТКонструкторВариантов;
КонецФункции
// Список вариантов.
//
// Возвращаемое значение:
// Массив из Структура
Функция СписокВариантов() Экспорт
Возврат ЮТКонтекст.ЗначениеКонтекста(КлючКонтекста()).Варианты;
КонецФункции
#КонецОбласти
/////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции, составляющие внутреннюю реализацию модуля
/////////////////////////////////////////////////////////////////////////////////
#Область СлужебныеПроцедурыИФункции
Функция КлючКонтекста()
Возврат "ВариантыТеста";
КонецФункции
#КонецОбласти

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="fe91efad-ba80-4a7c-ab20-7607f41f9106">
<name>ЮТКонструкторВариантов</name>
<synonym>
<key>ru</key>
<value>Конструктор вариантов</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<server>true</server>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

@ -735,6 +735,12 @@
#Область СлужебныйПрограммныйИнтерфейс
Функция ОписаниеТиповЛюбаяСсылка() Экспорт
Возврат ЮТОбщийВызовСервера.ОписаниеТиповЛюбаяСсылка();
КонецФункции
#КонецОбласти
/////////////////////////////////////////////////////////////////////////////////

View File

@ -0,0 +1,53 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// Copyright 2021-2022 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.
//
//©///////////////////////////////////////////////////////////////////////////©//
/////////////////////////////////////////////////////////////////////////////////
// Экспортные процедуры и функции, предназначенные для использования другими
// объектами конфигурации или другими программами
/////////////////////////////////////////////////////////////////////////////////
#Область ПрограммныйИнтерфейс
#КонецОбласти
/////////////////////////////////////////////////////////////////////////////////
// Экспортные процедуры и функции для служебного использования внутри подсистемы
/////////////////////////////////////////////////////////////////////////////////
#Область СлужебныйПрограммныйИнтерфейс
Функция ОписаниеТиповЛюбаяСсылка() Экспорт
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(
"<TypeDescription xmlns=""http://v8.1c.ru/8.1/data/core"">
| <TypeSet xmlns:cc=""http://v8.1c.ru/8.1/data/enterprise/current-config"">cc:AnyRef</TypeSet>
|</TypeDescription>");
Возврат СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
КонецФункции
#КонецОбласти
/////////////////////////////////////////////////////////////////////////////////
// Процедуры и функции, составляющие внутреннюю реализацию модуля
/////////////////////////////////////////////////////////////////////////////////
#Область СлужебныеПроцедурыИФункции
#КонецОбласти

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="b201e731-51e5-44cd-808a-b51b4fed556f">
<name>ЮТОбщийВызовСервера</name>
<synonym>
<key>ru</key>
<value>Общий вызов сервера</value>
</synonym>
<server>true</server>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
<serverCall>true</serverCall>
</mdclass:CommonModule>

View File

@ -216,7 +216,7 @@
ЗаписьXML.ЗаписатьНачалоЭлемента("testsuite");
ЗаписьXML.ЗаписатьАтрибут("id", XMLСтрока(Номер));
ЗаписьXML.ЗаписатьАтрибут("name", Набор.Представление);
ЗаписьXML.ЗаписатьАтрибут("name", СтрШаблон("%1 [%2]", Набор.Представление, Набор.Режим));
ЗаписьXML.ЗаписатьАтрибут("tests", XMLСтрока(КоличествоТестов));
ЗаписьXML.ЗаписатьАтрибут("errors", XMLСтрока(КоличествоСломанных));
ЗаписьXML.ЗаписатьАтрибут("skipped", XMLСтрока(КоличествоПропущенных));

View File

@ -34,21 +34,7 @@
// ЛюбаяСсылка - Ссылка на созданный объект
Функция СоздатьЭлемент(Менеджер, Наименование = Неопределено, Реквизиты = Неопределено) Экспорт
Объект = Менеджер.СоздатьЭлемент();
Если ЗначениеЗаполнено(Наименование) Тогда
Объект.Наименование = Наименование;
ИначеЕсли Объект.Метаданные().ДлинаНаименования > 0 Тогда
Объект.Наименование = Новый УникальныйИдентификатор();
КонецЕсли;
Если Реквизиты <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Объект, Реквизиты);
КонецЕсли;
Объект.Записать();
Возврат Объект.Ссылка;
Возврат ЮТТестовыеДанныеВызовСервера.СоздатьЭлемент(Менеджер, Наименование, Реквизиты);
КонецФункции
@ -62,17 +48,7 @@
// ДокументСсылка - Ссылка на созданный объект
Функция СоздатьДокумент(Менеджер, Реквизиты = Неопределено) Экспорт
Объект = Менеджер.СоздатьДокумент();
Объект.Дата = глПолучитьМосковскоеВремя();
Объект.УстановитьНовыйНомер();
Если Реквизиты <> Неопределено Тогда
ЗаполнитьЗначенияСвойств(Объект, Реквизиты);
КонецЕсли;
Объект.Записать();
Возврат Объект.Ссылка;
Возврат ЮТТестовыеДанныеВызовСервера.СоздатьДокумент(Менеджер, Реквизиты);
КонецФункции
@ -206,10 +182,9 @@
КонецФункции
Функция НовыйФайл(Содержимое = Неопределено, ТолькоЧтение = Ложь) Экспорт
Функция НовыйФайл(Содержимое = Неопределено, ТолькоЧтение = Ложь, Расширение = Неопределено) Экспорт
Результат = ПолучитьИмяВременногоФайла();
ЮТКонтекст.КонтекстТеста().ВременныеФайлы.Добавить(Результат);
Результат = НовоеИмяВременногоФайла(Расширение);
ЗаписьДанных = Новый ЗаписьДанных(Результат);
@ -228,6 +203,21 @@
КонецФункции
// Возвращает имя нового файла.
// По окончании выполнения теста этот файл будет удалет
// Параметры:
// Расширение - Строка - Расширение нового файла
//
// Возвращаемое значение:
// Строка
Функция НовоеИмяВременногоФайла(Расширение = Неопределено) Экспорт
Результат = ПолучитьИмяВременногоФайла(Расширение);
ЮТКонтекст.КонтекстТеста().ВременныеФайлы.Добавить(Результат);
Возврат Результат;
КонецФункции
Функция ТаблицаMarkDown(Строки) Экспорт
ЗагрузилиЗаголовок = Ложь;
@ -313,6 +303,29 @@
КонецФункции
Функция СобратьМассивВариантов(БазоваяСтруктура, ЗначенияПараметров) Экспорт
Варианты = Новый Массив;
Ключи = ЮТОбщий.ВыгрузитьЗначения(ЗначенияПараметров, "Ключ");
ДобавитьВарианты(Варианты, БазоваяСтруктура, ЗначенияПараметров, Ключи, 0);
Возврат Варианты;
КонецФункции
// Варианты.
//
// Параметры:
// Реквизиты - Строка - Реквизиты
//
// Возвращаемое значение:
// ОбщийМодуль
Функция Варианты(Реквизиты) Экспорт
Возврат ЮТКонструкторВариантов.Варианты(Реквизиты);
КонецФункции
#КонецОбласти
/////////////////////////////////////////////////////////////////////////////////
// Экспортные процедуры и функции для служебного использования внутри подсистемы
@ -382,4 +395,23 @@
#Область СлужебныеПроцедурыИФункции
Процедура ДобавитьВарианты(Варианты, БазоваяСтруктура, ЗначенияПараметров, Ключи, Инд)
Если Инд > Ключи.ВГраница() Тогда
Возврат;
КонецЕсли;
Ключ = Ключи[Инд];
Для Каждого Значение Из ЗначенияПараметров[Ключ] Цикл
Вариант = ЮТОбщий.СкопироватьСтруктуру(БазоваяСтруктура);
Вариант[Ключ] = Значение;
Варианты.Добавить(Вариант);
ДобавитьВарианты(Варианты, Вариант, ЗначенияПараметров, Ключи, Инд + 1);
КонецЦикла;
КонецПроцедуры
#КонецОбласти

View File

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

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="f8dcca0e-7165-4660-bcd8-a6b0c6e2e4c6">
<name>ЮТТестовыеДанныеВызовСервера</name>
<synonym>
<key>ru</key>
<value>Тестовые данные вызов сервера</value>
</synonym>
<server>true</server>
<serverCall>true</serverCall>
</mdclass:CommonModule>

View File

@ -289,7 +289,7 @@
//
// Возвращаемое значение:
// Структура - Описание контекста регистрации сценариев:
// * МетаданныеМодуля - Структура - см. ЮТФабрика.ОписаниеМодуля
// * МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля
// * ИсполняемыеСценарии - Структура -:
// ** ТестовыеНаборы - Соответствие -
Функция ОписаниеКонтекстаРегистрацииСценариев(МетаданныеМодуля)

View File

@ -115,13 +115,11 @@
УстановитьОписаниеПроверки(ОписаниеПроверки);
Контекст = Контекст();
Контекст.ИмяСвойства = "";
Контекст.СброситьИмяСвойства = Ложь;
Контекст.ИмяСвойства = ""; // Очищаем для формирования корректного сообщения об ошибке
ЭтоДействительнаяЦепочкаСвойств(Контекст.ПроверяемоеЗначение, ИмяСвойства, Истина);
Контекст.ИмяСвойства = ИмяСвойства;
Контекст.СброситьИмяСвойства = Ложь;
Возврат ЮТУтверждения;
@ -141,8 +139,6 @@
УстановитьОписаниеПроверки(ОписаниеПроверки);
Контекст = Контекст();
Контекст.ИмяСвойства = "";
Контекст.СброситьИмяСвойства = Ложь;
Если ЭтоДействительнаяЦепочкаСвойств(Контекст.ПроверяемоеЗначение, ИмяСвойства, Ложь) Тогда
ЮТРегистрацияОшибок.СгенерироватьОшибкуСравнения(СтрШаблон("не содержит свойство `%1`", ИмяСвойства), Неопределено, ИмяСвойства);
@ -825,7 +821,6 @@
Контекст.Вставить("ПрефиксОшибки", "");
Контекст.Вставить("ИмяМетода", "");
Контекст.Вставить("ИмяСвойства", "");
Контекст.Вставить("СброситьИмяСвойства", Ложь);
Контекст.Вставить("ПараметрыМетода", Неопределено);
Контекст.Вставить("ОписаниеПроверки", Неопределено);
@ -860,12 +855,6 @@
Функция ПроверяемоеЗначение()
Контекст = Контекст();
Если Контекст.СброситьИмяСвойства Тогда
Контекст.ИмяСвойства = "";
Контекст.СброситьИмяСвойства = Ложь;
КонецЕсли;
Значение = Контекст.ПроверяемоеЗначение;
Если ЗначениеЗаполнено(Контекст.ИмяСвойства) Тогда
@ -886,8 +875,6 @@
КонецЕсли;
Контекст.СброситьИмяСвойства = Истина;
КонецЕсли;
Возврат Значение;

View File

@ -90,7 +90,7 @@
КонецЕсли;
КонецЕсли;
Данные = ЮТТесты.СценарииМодуля();
Если Ошибка <> Неопределено Тогда
@ -194,8 +194,8 @@
// TODO Фильтрация по путям
НаборыТестов = Неопределено;
#Если ТолстыйКлиентОбычноеПриложение Тогда
Если Модуль.КлиентОбычноеПриложение Тогда
#Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
Если Модуль.КлиентОбычноеПриложение ИЛИ Модуль.КлиентУправляемоеПриложение Тогда
НаборыТестов = ИсполняемыеСценарииМодуля(Модуль);
ИначеЕсли Модуль.Сервер Тогда
НаборыТестов = ЮТЧитательСервер.ИсполняемыеСценарииМодуля(Модуль);

View File

@ -29,6 +29,7 @@
</extension>
<languageCode>ru</languageCode>
</languages>
<subsystems>Subsystem.ЮТДвижок</subsystems>
<subsystems>Subsystem.ЮТФункциональность</subsystems>
<commonModules>CommonModule.Мокито</commonModules>
<commonModules>CommonModule.МокитоОбучение</commonModules>
@ -44,11 +45,13 @@
<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.ЮТОтчетJSON</commonModules>
<commonModules>CommonModule.ЮТОтчетJUnit</commonModules>
@ -59,6 +62,7 @@
<commonModules>CommonModule.ЮТРегистрацияОшибок</commonModules>
<commonModules>CommonModule.ЮТСобытия</commonModules>
<commonModules>CommonModule.ЮТТестовыеДанные</commonModules>
<commonModules>CommonModule.ЮТТестовыеДанныеВызовСервера</commonModules>
<commonModules>CommonModule.ЮТТесты</commonModules>
<commonModules>CommonModule.ЮТУтверждения</commonModules>
<commonModules>CommonModule.ЮТФабрика</commonModules>

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,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Subsystem xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="36bb00a3-9e36-423a-9421-935867c7993e">
<name>ЮТДвижок</name>
<synonym>
<key>ru</key>
<value>Движок</value>
</synonym>
<content>CommonModule.Мокито</content>
<content>CommonModule.МокитоОбучение</content>
<content>CommonModule.МокитоПроверки</content>
<content>CommonModule.МокитоСлужебный</content>
<content>CommonModule.ЮТ</content>
<content>CommonModule.ЮТИсполнитель</content>
<content>CommonModule.ЮТИсполнительСервер</content>
<content>CommonModule.ЮТКонтекст</content>
<content>CommonModule.ЮТКонтекстКлиент</content>
<content>CommonModule.ЮТКонтекстСервер</content>
<content>CommonModule.ЮТМетаданныеСервер</content>
<content>CommonModule.ЮТОбщий</content>
<content>CommonModule.ЮТОтчет</content>
<content>CommonModule.ЮТОтчетJSON</content>
<content>CommonModule.ЮТОтчетJUnit</content>
<content>CommonModule.ЮТПараметры</content>
<content>CommonModule.ЮТПараметрыСервер</content>
<content>CommonModule.ЮТПовторногоИспользования</content>
<content>CommonModule.ЮТРасширения</content>
<content>CommonModule.ЮТРегистрацияОшибок</content>
<content>CommonModule.ЮТСобытия</content>
<content>CommonModule.ЮТТестовыеДанные</content>
<content>CommonModule.ЮТТесты</content>
<content>CommonModule.ЮТУтверждения</content>
<content>CommonModule.ЮТФабрика</content>
<content>CommonModule.ЮТФильтрация</content>
<content>CommonModule.ЮТЧитатель</content>
<content>CommonModule.ЮТЧитательСервер</content>
<content>CommonModule.ЮТКонструкторВариантов</content>
<content>CommonModule.ЮТОбщийВызовСервера</content>
<content>CommonModule.ЮТТестовыеДанныеВызовСервера</content>
</mdclass:Subsystem>