mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-01-20 18:48:36 +02:00
parent
b286be4dce
commit
8796a2cdba
@ -1,8 +1,4 @@
|
||||
{
|
||||
"version": 1,
|
||||
"settings": {
|
||||
"common-module-type": {
|
||||
"enabled": false
|
||||
}
|
||||
}
|
||||
"settings": {}
|
||||
}
|
@ -144,10 +144,9 @@
|
||||
//
|
||||
// Параметры:
|
||||
// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
|
||||
// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля
|
||||
Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
|
||||
Процедура ПослеЧтенияСценариевМодуля(ОписаниеТестовогоМодуля) Экспорт
|
||||
|
||||
ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев модуля завершена `%1`", МетаданныеМодуля.Имя));
|
||||
ЮТЛогирование.Информация(СтрШаблон("Загрузка сценариев модуля завершена `%1`", ОписаниеТестовогоМодуля.МетаданныеМодуля.Имя));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@ -211,11 +211,10 @@
|
||||
// После чтения сценариев модуля.
|
||||
// Позволяет настроить/обработать параметры загруженных настроек тестов модуля
|
||||
// Параметры:
|
||||
// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
|
||||
// ИсполняемыеСценарии - см. ЮТТестыСлужебный.СценарииМодуля
|
||||
Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
|
||||
// ОписаниеТестовогоМодуля - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
|
||||
Процедура ПослеЧтенияСценариевМодуля(ОписаниеТестовогоМодуля) Экспорт
|
||||
|
||||
Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля, ИсполняемыеСценарии);
|
||||
Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеТестовогоМодуля);
|
||||
ВызватьПодключаемыйОбработчикСобытия("ПослеЧтенияСценариевМодуля", "ЗагрузкаТестов", Параметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
@ -37,6 +37,13 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция Тег(ИмяТега) Экспорт
|
||||
|
||||
ЮТТестыСлужебный.ДобавитьТег(ИмяТега);
|
||||
|
||||
Возврат ЮТТесты;
|
||||
|
||||
КонецФункции
|
||||
// Регистрирует тест, исполняемый в контекстах, в которых доступен тестовый модуль.
|
||||
// Например
|
||||
//
|
||||
@ -105,7 +112,7 @@
|
||||
// ОбщийМодуль - Этот же модуль
|
||||
Функция НастройкаИсполнения(ИмяПараметра, Значение) Экспорт
|
||||
|
||||
ЮТТестыСлужебный.НастройкаИсполнения(ИмяПараметра, Значение);
|
||||
ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ИмяПараметра, Значение);
|
||||
|
||||
Возврат ЮТТесты;
|
||||
|
||||
@ -120,7 +127,7 @@
|
||||
// ОбщийМодуль - Этот же модуль
|
||||
Функция ВТранзакции(ВыполнятьВТранзакции = Истина) Экспорт
|
||||
|
||||
ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции, ВыполнятьВТранзакции);
|
||||
ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции, ВыполнятьВТранзакции);
|
||||
|
||||
Возврат ЮТТесты;
|
||||
|
||||
@ -141,7 +148,7 @@
|
||||
// ОбщийМодуль - Этот же модуль
|
||||
Функция УдалениеТестовыхДанных(УдалятьСозданныеДанные = Истина) Экспорт
|
||||
|
||||
ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().УдалениеТестовыхДанных, УдалятьСозданныеДанные);
|
||||
ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().УдалениеТестовыхДанных, УдалятьСозданныеДанные);
|
||||
|
||||
Возврат ЮТТесты;
|
||||
|
||||
@ -156,7 +163,7 @@
|
||||
// ОбщийМодуль - Этот же модуль
|
||||
Функция Перед(ВыполнитьПеред = "") Экспорт
|
||||
|
||||
ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().Перед, ВыполнитьПеред);
|
||||
ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().Перед, ВыполнитьПеред);
|
||||
|
||||
Возврат ЮТТесты;
|
||||
|
||||
@ -171,7 +178,7 @@
|
||||
// ОбщийМодуль - Этот же модуль
|
||||
Функция После(ВыполнитьПосле = "") Экспорт
|
||||
|
||||
ЮТТестыСлужебный.НастройкаИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().После, ВыполнитьПосле);
|
||||
ЮТТестыСлужебный.УстановитьНастройкуИсполнения(ЮТФабрика.ПараметрыИсполненияТеста().После, ВыполнитьПосле);
|
||||
|
||||
Возврат ЮТТесты;
|
||||
|
||||
@ -361,4 +368,18 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Используется для вызова произвольной функции внутри текучего интерфейса
|
||||
//
|
||||
// Параметры:
|
||||
// _ - Произвольный
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// CommonModule.ЮТТесты - Вызыов
|
||||
//@skip-check bsl-variable-name-invalid
|
||||
Функция Вызыов(_) Экспорт
|
||||
|
||||
Возврат ЮТТесты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -20,39 +20,35 @@
|
||||
|
||||
Процедура ДобавитьТестовыйНабор(Имя, ТегиСтрокой) Экспорт
|
||||
|
||||
ИсполняемыеСценарии = СценарииМодуля();
|
||||
|
||||
Если НЕ ЭтоИсполняемыеСценарии(ИсполняемыеСценарии) Тогда
|
||||
ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии";
|
||||
КонецЕсли;
|
||||
|
||||
Если ПустаяСтрока(Имя) Тогда
|
||||
ВызватьИсключение "Имя тестового набора не может быть пустым";
|
||||
КонецЕсли;
|
||||
|
||||
Контекст = Контекст();
|
||||
НовыйТестовыйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Имя, ТегиСтрокой);
|
||||
|
||||
ИсполняемыеСценарии.ТестовыеНаборы.Добавить(НовыйТестовыйНабор);
|
||||
Контекст.ТекущийНабор = НовыйТестовыйНабор;
|
||||
Контекст.ТекущийЭлемент = НовыйТестовыйНабор;
|
||||
Если Контекст = Неопределено ИЛИ НЕ Контекст.Свойство("ОписаниеМодуля") Тогда
|
||||
ВызватьИсключение "Не инициализирован контекст регистрации тестов";
|
||||
КонецЕсли;
|
||||
|
||||
ТестовыйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Имя, ТегиСтрокой);
|
||||
|
||||
Контекст.ОписаниеМодуля.НаборыТестов.Добавить(ТестовыйНабор);
|
||||
Контекст.ТекущийНабор = ТестовыйНабор;
|
||||
Контекст.ТекущийЭлемент = ТестовыйНабор;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьТест(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты) Экспорт
|
||||
|
||||
Если ПустаяСтрока(ИмяТестовогоМетода) Тогда
|
||||
ВызватьИсключение "Имя тестового метода не может быть пустым";
|
||||
КонецЕсли;
|
||||
|
||||
Контекст = Контекст();
|
||||
Набор = Контекст.ТекущийНабор;
|
||||
|
||||
ЭтоИсполняемыеСценарии = ЭтоИсполняемыеСценарии(Набор);
|
||||
ЭтоТестовыйНабор = ЭтоТестовыйНабор(Набор);
|
||||
|
||||
Если НЕ (ЭтоИсполняемыеСценарии ИЛИ ЭтоТестовыйНабор) Тогда
|
||||
ВызватьИсключение "Первый параметр должен быть результатом метода ЮТТесты.ИсполняемыеСценарии или ЮТТесты.ТестовыйНабор";
|
||||
КонецЕсли;
|
||||
|
||||
Если ПустаяСтрока(ИмяТестовогоМетода) Тогда
|
||||
ВызватьИсключение "Имя тестового метода не может быть пустым";
|
||||
Если Набор = Неопределено Или НЕ Набор.Свойство("Тесты") Тогда
|
||||
ВызватьИсключение "Не установлен тестовый набор. Скорее всего проблема в движке";
|
||||
КонецЕсли;
|
||||
|
||||
Тест = ОписаниеТеста(ИмяТестовогоМетода, ПредставлениеТеста, ТегиСтрокой, Контексты);
|
||||
@ -74,7 +70,7 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура НастройкаИсполнения(ИмяПараметра, Значение) Экспорт
|
||||
Процедура УстановитьНастройкуИсполнения(ИмяПараметра, Значение) Экспорт
|
||||
|
||||
Контекст = Контекст();
|
||||
|
||||
@ -150,6 +146,13 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ДобавитьТег(ИмяТега) Экспорт
|
||||
|
||||
ТекущийЭлемент = Контекст().ТекущийЭлемент;
|
||||
ТекущийЭлемент.Теги.Добавить(ИмяТега);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция КонтекстыВызоваКлиента() Экспорт
|
||||
|
||||
Режимы = ЮТФабрика.КонтекстыВызова();
|
||||
@ -161,28 +164,21 @@
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. ИсполняемыеСценарии
|
||||
Функция СценарииМодуля() Экспорт
|
||||
Функция ОписаниеМодуля() Экспорт
|
||||
|
||||
СценарииМодуля = Контекст().ИсполняемыеСценарии;
|
||||
|
||||
Результат = Новый Структура("ТестовыеНаборы, НастройкиВыполнения, Зависимости");
|
||||
Результат.ТестовыеНаборы = СценарииМодуля.ТестовыеНаборы;
|
||||
|
||||
// TODO Нужен рефакторинг
|
||||
Результат.НастройкиВыполнения = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.НастройкиВыполнения);
|
||||
Результат.Зависимости = ЮТКоллекции.СкопироватьРекурсивно(СценарииМодуля.Зависимости);
|
||||
|
||||
СценарииМодуля.НастройкиВыполнения.Очистить(); // Костыль. Очистка первого набора, тк перенесено в модуль
|
||||
СценарииМодуля.Зависимости.Очистить(); // Костыль. Очистка первого набора, тк перенесено в модуль
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат Результат;
|
||||
Возврат Контекст().ОписаниеМодуля;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Контекст.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Контекст:
|
||||
// * ОписаниеМодуля - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
|
||||
Функция Контекст() Экспорт
|
||||
|
||||
Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста("КонтекстРегистрацияТестов");
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекста());
|
||||
|
||||
КонецФункции
|
||||
|
||||
@ -191,14 +187,12 @@
|
||||
Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт
|
||||
|
||||
ИнициализироватьКонтекст(МетаданныеМодуля);
|
||||
ЮТСобытияСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеЧтенияСценариевМодуля() Экспорт
|
||||
Процедура ПослеЧтенияСценариевМодуля(ОписаниеТестовогоМодуля) Экспорт
|
||||
|
||||
Контекст = Контекст();
|
||||
ЮТСобытияСлужебный.ПослеЧтенияСценариевМодуля(Контекст.МетаданныеМодуля, Контекст.ИсполняемыеСценарии);
|
||||
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекста(), Неопределено);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -208,36 +202,27 @@
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Исполняемые сценарии.
|
||||
//
|
||||
// Новое описание тестового модуля.
|
||||
//
|
||||
// Параметры:
|
||||
// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
|
||||
//
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Исполняемые сценарии:
|
||||
// * ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы модуля
|
||||
// * НастройкиВыполнения - Структура - Настройки исполнения тестов модуля
|
||||
// * Зависимости - Массив Из см. ЮТФабрика.НовоеОписаниеЗависимости - Зависимости тестового модуля
|
||||
Функция ИсполняемыеСценарии(МетаданныеМодуля)
|
||||
// см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
|
||||
Функция НовоеОписаниеТестовогоМодуля(МетаданныеМодуля)
|
||||
|
||||
Структура = Новый Структура;
|
||||
Структура.Вставить("ТестовыеНаборы", Новый Массив);
|
||||
Структура.Вставить("НастройкиВыполнения", Новый Структура);
|
||||
Структура.Вставить("Зависимости", Новый Массив);
|
||||
ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив);
|
||||
|
||||
Набор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя);
|
||||
Набор.НастройкиВыполнения = Структура.НастройкиВыполнения; // Общие настройки с набором по умолчанию
|
||||
Набор.Зависимости = Структура.Зависимости; // Общие зависимости с набором по умолчанию
|
||||
НаборПоУмолчанию = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя);
|
||||
ОписаниеМодуля.НаборыТестов.Добавить(НаборПоУмолчанию);
|
||||
|
||||
Структура.ТестовыеНаборы.Добавить(Набор);
|
||||
|
||||
Возврат Структура;
|
||||
Возврат ОписаниеМодуля;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КонтекстыВызоваПоУмолчанию()
|
||||
|
||||
Возврат ЮТФабрикаСлужебный.КонтекстыМодуля(Контекст().МетаданныеМодуля);
|
||||
Возврат ЮТФабрикаСлужебный.КонтекстыМодуля(Контекст().ОписаниеМодуля.МетаданныеМодуля);
|
||||
|
||||
КонецФункции
|
||||
|
||||
@ -249,20 +234,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоИсполняемыеСценарии(ИсполняемыеСценарии)
|
||||
|
||||
Возврат ТипЗнч(ИсполняемыеСценарии) = Тип("Структура")
|
||||
И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ИсполняемыеСценарии, "ТестовыеНаборы")) = Тип("Массив");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоТестовыйНабор(ТестовыйНабор)
|
||||
|
||||
Возврат ТипЗнч(ТестовыйНабор) = Тип("Структура")
|
||||
И ТипЗнч(ЮТКоллекции.ЗначениеСтруктуры(ТестовыйНабор, "Тесты")) = Тип("Массив");
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЭтоОписаниеТеста(Описание)
|
||||
|
||||
Возврат ТипЗнч(Описание) = Тип("Структура")
|
||||
@ -284,18 +255,17 @@
|
||||
|
||||
Процедура ИнициализироватьКонтекст(МетаданныеМодуля)
|
||||
|
||||
ИсполняемыеСценарии = ИсполняемыеСценарии(МетаданныеМодуля);
|
||||
Набор = ИсполняемыеСценарии.ТестовыеНаборы[0];
|
||||
ОписаниеМодуля = НовоеОписаниеТестовогоМодуля(МетаданныеМодуля);
|
||||
НаборПоУмолчанию = ОписаниеМодуля.НаборыТестов[0];
|
||||
|
||||
Контекст = Новый Структура();
|
||||
|
||||
Контекст.Вставить("МетаданныеМодуля", МетаданныеМодуля);
|
||||
Контекст.Вставить("ИсполняемыеСценарии", ИсполняемыеСценарии);
|
||||
Контекст.Вставить("ТекущийНабор", Набор);
|
||||
Контекст.Вставить("ТекущийЭлемент", Набор);
|
||||
Контекст.Вставить("ОписаниеМодуля", ОписаниеМодуля);
|
||||
Контекст.Вставить("ТекущийНабор", НаборПоУмолчанию);
|
||||
Контекст.Вставить("ТекущийЭлемент", ОписаниеМодуля);
|
||||
Контекст.Вставить("БазовыйТест", Неопределено);
|
||||
|
||||
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста("КонтекстРегистрацияТестов", Контекст);
|
||||
ЮТКонтекстСлужебный.УстановитьЗначениеКонтекста(ИмяКонтекста(), Контекст);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -313,4 +283,10 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИмяКонтекста()
|
||||
|
||||
Возврат "КонтекстРегистрацияТестов";
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -122,9 +122,12 @@
|
||||
|
||||
Описание.Вставить("Имя", Строка(Имя));
|
||||
Описание.Вставить("Представление", Строка(Имя));
|
||||
Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь));
|
||||
Описание.Вставить("Тесты", Новый Массив);
|
||||
|
||||
Если ЗначениеЗаполнено(ТегиСтрокой) Тогда
|
||||
Описание.Теги = СтрРазделить(ТегиСтрокой, ", ", Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Описание;
|
||||
|
||||
КонецФункции
|
||||
@ -143,7 +146,7 @@
|
||||
// * Имя - Строка - Имя теста (тестового метода)
|
||||
// * Представление - Строка - Представление теста
|
||||
// * Теги - Массив из Строка - Теги теста
|
||||
// * КонтекстВызова - Массив из Строка - Контексты исполнения теста
|
||||
// * КонтекстВызова - Массив из Строка - Контексты исполнения теста, см. ЮТФабрика.КонтекстыВызова
|
||||
// * НастройкиВыполнения- Структура - Настройки исполнения теста
|
||||
// * Параметры - Неопределено, Массив из Произвольный - Параметры теста
|
||||
// * НомерВНаборе - Число - Порядковый номер теста в наборе
|
||||
@ -158,11 +161,14 @@
|
||||
Описание = БазовоеОписаниеРегистрируемогоОбъекта();
|
||||
Описание.Вставить("Имя", Строка(Имя));
|
||||
Описание.Вставить("Представление", Строка(Представление));
|
||||
Описание.Вставить("Теги", СтрРазделить(ТегиСтрокой, ", ", Ложь));
|
||||
Описание.Вставить("КонтекстВызова", КонтекстыВызова);
|
||||
Описание.Вставить("Параметры", Неопределено);
|
||||
Описание.Вставить("НомерВНаборе", 0);
|
||||
|
||||
Если ЗначениеЗаполнено(ТегиСтрокой) Тогда
|
||||
Описание.Теги = СтрРазделить(ТегиСтрокой, ", ", Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Описание;
|
||||
|
||||
КонецФункции
|
||||
@ -705,6 +711,7 @@
|
||||
Описание.Вставить("НастройкиВыполнения", Новый Структура());
|
||||
Описание.Вставить("Зависимости", Новый Массив());
|
||||
Описание.Вставить("Ошибки", Новый Массив);
|
||||
Описание.Вставить("Теги", Новый Массив);
|
||||
|
||||
Возврат Описание;
|
||||
|
||||
|
@ -41,88 +41,44 @@
|
||||
// Отфильтровать тестовые наборы.
|
||||
//
|
||||
// Параметры:
|
||||
// ТестовыеНаборы - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Тестовые наборы
|
||||
// ОписаниеМодуля - Структура - Описание модуля, которому принадлежат наборы, см. ЮТФабрикаСлужебный.ОписаниеМодуля
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоНабора - Отфильтрованные наборы
|
||||
Функция ОтфильтроватьТестовыеНаборы(ТестовыеНаборы, ОписаниеМодуля) Экспорт
|
||||
// ОписаниеТестовогоМодуля - см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля
|
||||
Процедура ОтфильтроватьТестовыеНаборы(ОписаниеТестовогоМодуля) Экспорт
|
||||
|
||||
Контекст = ЮТКонтекстСлужебный.КонтекстЧитателя();
|
||||
Фильтр = ЮТКонтекстСлужебный.КонтекстЧитателя().Фильтр;
|
||||
|
||||
Если НЕ Контекст.Фильтр.ЕстьФильтрТестов И НЕ Контекст.Фильтр.ЕстьФильтрКонтекстов Тогда
|
||||
Возврат ТестовыеНаборы;
|
||||
Если НЕ Фильтр.ЕстьФильтрТестов И НЕ Фильтр.ЕстьФильтрКонтекстов И НЕ Фильтр.ЕстьФильтрТегов Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
НаборыТестов = ОписаниеТестовогоМодуля.НаборыТестов;
|
||||
МетаданныеМодуля = ОписаниеТестовогоМодуля.МетаданныеМодуля;
|
||||
|
||||
Результат = Новый Массив();
|
||||
|
||||
Если Контекст.Фильтр.ЕстьФильтрТестов Тогда
|
||||
ДоступныеТестовыеМетоды = Новый Соответствие();
|
||||
|
||||
Для Каждого ОписаниеИмениТеста Из Контекст.Фильтр.Тесты Цикл
|
||||
|
||||
Если СтрСравнить(ОписаниеИмениТеста.ИмяМодуля, ОписаниеМодуля.Имя) = 0 Тогда
|
||||
ОписаниеИмениТеста.ИмяМетода = ВРег(ОписаниеИмениТеста.ИмяМетода);
|
||||
|
||||
СохраненноеОписаниеИмени = ДоступныеТестовыеМетоды[ОписаниеИмениТеста.ИмяМетода];
|
||||
|
||||
Если СохраненноеОписаниеИмени = Неопределено И ОписаниеИмениТеста.Контекст = Неопределено Тогда
|
||||
ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста);
|
||||
ИначеЕсли СохраненноеОписаниеИмени = Неопределено Тогда
|
||||
ОписаниеИмениТеста.Контекст = ЮТКоллекции.ЗначениеВМассиве(ОписаниеИмениТеста.Контекст);
|
||||
ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста);
|
||||
ИначеЕсли ОписаниеИмениТеста.Контекст = Неопределено Тогда
|
||||
СохраненноеОписаниеИмени.Контекст = Неопределено; // Без фильтрации контекста теста, возьмом из самого теста контексты
|
||||
ИначеЕсли СохраненноеОписаниеИмени.Контекст <> Неопределено Тогда
|
||||
СохраненноеОписаниеИмени.Контекст.Добавить(ОписаниеИмениТеста.Контекст);
|
||||
Иначе
|
||||
// Если было имя теста без контекста, то будет вызов во всех контекстах
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецЕсли;
|
||||
СостояниеФильтрации = Новый Структура;
|
||||
ДоступныеТестовыеМетоды(Фильтр, МетаданныеМодуля, СостояниеФильтрации);
|
||||
|
||||
Для Каждого Набор Из ТестовыеНаборы Цикл
|
||||
Для Каждого Набор Из НаборыТестов Цикл
|
||||
|
||||
ОтфильтрованныйНабор = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Набор.Имя);
|
||||
ЗаполнитьЗначенияСвойств(ОтфильтрованныйНабор, Набор, , "Тесты");
|
||||
|
||||
ОбработатьТегиНабора(ОписаниеТестовогоМодуля, Набор, Фильтр, СостояниеФильтрации);
|
||||
|
||||
Для Каждого Тест Из Набор.Тесты Цикл
|
||||
|
||||
КонтекстыТеста = Неопределено;
|
||||
ТестПодходитПодФильтр = ФильтрТестов(Тест, Фильтр, СостояниеФильтрации)
|
||||
И ФильтрКонтекста(Тест, Фильтр)
|
||||
И ФильтрТегов(Тест, Фильтр, СостояниеФильтрации);
|
||||
|
||||
Если ДоступныеТестовыеМетоды <> Неопределено Тогда
|
||||
ОписаниеИмениТеста = ДоступныеТестовыеМетоды[ВРег(Тест.Имя)];
|
||||
Если ТестПодходитПодФильтр Тогда
|
||||
|
||||
Если ОписаниеИмениТеста = Неопределено Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
КонтекстыТеста = ОписаниеИмениТеста.Контекст;
|
||||
ОтфильтрованныйТест = ЮТФабрикаСлужебный.ОписаниеТеста(Тест.Имя, "", "");
|
||||
ЗаполнитьЗначенияСвойств(ОтфильтрованныйТест, Тест);
|
||||
ОтфильтрованныйНабор.Тесты.Добавить(ОтфильтрованныйТест);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если КонтекстыТеста = Неопределено Тогда
|
||||
КонтекстыТеста = Тест.КонтекстВызова;
|
||||
КонецЕсли;
|
||||
|
||||
Если Контекст.Фильтр.ЕстьФильтрКонтекстов Тогда
|
||||
КонтекстыТеста = ЮТКоллекции.ПересечениеМассивов(КонтекстыТеста, Контекст.Фильтр.Контексты);
|
||||
КонецЕсли;
|
||||
|
||||
Если КонтекстыТеста.Количество() = 0 Тогда
|
||||
// Возможно стоит такие выводить в лог с ошибкой "по переданным параметрам контекст теста не определен"
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ОтфильтрованныйТест = ЮТФабрикаСлужебный.ОписаниеТеста(Тест.Имя, "", "");
|
||||
ЗаполнитьЗначенияСвойств(ОтфильтрованныйТест, Тест, , "КонтекстВызова");
|
||||
ОтфильтрованныйТест.КонтекстВызова = КонтекстыТеста;
|
||||
|
||||
ОтфильтрованныйНабор.Тесты.Добавить(ОтфильтрованныйТест);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Если ОтфильтрованныйНабор.Тесты.Количество() Тогда
|
||||
@ -131,9 +87,9 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
ОписаниеТестовогоМодуля.НаборыТестов = Результат;
|
||||
|
||||
КонецФункции
|
||||
КонецПроцедуры
|
||||
|
||||
// Фильтр
|
||||
// Конструктур фильтра поиска тестовых методов
|
||||
@ -154,7 +110,7 @@
|
||||
|
||||
Фильтр.Расширения = Новый Структура();
|
||||
Фильтр.Модули = Новый Структура();
|
||||
Фильтр.Теги = Новый Массив();
|
||||
Фильтр.Теги = Новый Структура();
|
||||
Фильтр.Контексты = Новый Массив();
|
||||
Фильтр.Наборы = Новый Массив();
|
||||
Фильтр.Пути = Новый Массив();
|
||||
@ -191,7 +147,7 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Теги) Тогда
|
||||
Фильтр.Теги = Теги;
|
||||
Фильтр.Теги = МассивВСтруктуру(Теги);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Наборы) Тогда
|
||||
@ -232,8 +188,9 @@
|
||||
|
||||
Фильтр.Вставить("ЕстьФильтрРасширений", Фильтр.Расширения.Количество() > 0);
|
||||
Фильтр.Вставить("ЕстьФильтрМодулей", МодулиТестов.Количество() ИЛИ Фильтр.Модули.Количество());
|
||||
Фильтр.Вставить("ЕстьФильтрТестов", Фильтр.Тесты.Количество());
|
||||
Фильтр.Вставить("ЕстьФильтрТестов", Фильтр.Тесты.Количество() > 0 );
|
||||
Фильтр.Вставить("ЕстьФильтрКонтекстов", ЗначениеЗаполнено(Фильтр.Контексты));
|
||||
Фильтр.Вставить("ЕстьФильтрТегов", ЗначениеЗаполнено(Фильтр.Теги));
|
||||
|
||||
ЮТКонтекстСлужебный.УстановитьКонтекстЧитателя(Новый Структура("Фильтр", Фильтр));
|
||||
|
||||
@ -291,4 +248,114 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДоступныеТестовыеМетоды(Фильтр, ОписаниеМодуля, СостояниеФильтрации)
|
||||
|
||||
Если НЕ Фильтр.ЕстьФильтрТестов Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ДоступныеТестовыеМетоды = Новый Соответствие();
|
||||
|
||||
Для Каждого ОписаниеИмениТеста Из Фильтр.Тесты Цикл
|
||||
|
||||
Если СтрСравнить(ОписаниеИмениТеста.ИмяМодуля, ОписаниеМодуля.Имя) = 0 Тогда
|
||||
ОписаниеИмениТеста.ИмяМетода = ВРег(ОписаниеИмениТеста.ИмяМетода);
|
||||
|
||||
СохраненноеОписаниеИмени = ДоступныеТестовыеМетоды[ОписаниеИмениТеста.ИмяМетода];
|
||||
|
||||
Если СохраненноеОписаниеИмени = Неопределено И ОписаниеИмениТеста.Контекст = Неопределено Тогда
|
||||
ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста);
|
||||
ИначеЕсли СохраненноеОписаниеИмени = Неопределено Тогда
|
||||
ОписаниеИмениТеста.Контекст = ЮТКоллекции.ЗначениеВМассиве(ОписаниеИмениТеста.Контекст);
|
||||
ДоступныеТестовыеМетоды.Вставить(ВРег(ОписаниеИмениТеста.ИмяМетода), ОписаниеИмениТеста);
|
||||
ИначеЕсли ОписаниеИмениТеста.Контекст = Неопределено Тогда
|
||||
СохраненноеОписаниеИмени.Контекст = Неопределено; // Без фильтрации контекста теста, возьмом из самого теста контексты
|
||||
ИначеЕсли СохраненноеОписаниеИмени.Контекст <> Неопределено Тогда
|
||||
СохраненноеОписаниеИмени.Контекст.Добавить(ОписаниеИмениТеста.Контекст);
|
||||
Иначе
|
||||
// Если было имя теста без контекста, то будет вызов во всех контекстах
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
СостояниеФильтрации.Вставить("ДоступныеТестовыеМетоды", ДоступныеТестовыеМетоды);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьТегиНабора(ОписаниеМодуля, Набор, Фильтр, СостояниеФильтрации)
|
||||
|
||||
Если НЕ Фильтр.ЕстьФильтрТегов Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ПодходитПодФильтрТегов = ПодходитПодФильтрТегов(Фильтр, ОписаниеМодуля.Теги) Или ПодходитПодФильтрТегов(Фильтр, Набор.Теги);
|
||||
СостояниеФильтрации.Вставить("ПодходитПодФильтрТегов", ПодходитПодФильтрТегов);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПодходитПодФильтрТегов(Фильтр, Теги)
|
||||
|
||||
Для Каждого Тег Из Теги Цикл
|
||||
|
||||
Если Фильтр.Теги.Свойство(Тег) Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ФильтрТестов(Тест, Фильтр, СостояниеФильтрации)
|
||||
|
||||
Если НЕ Фильтр.ЕстьФильтрТестов Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
ФильтрТеста = СостояниеФильтрации.ДоступныеТестовыеМетоды[ВРег(Тест.Имя)];
|
||||
|
||||
Если ФильтрТеста = Неопределено Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(ФильтрТеста.Контекст) Тогда
|
||||
Тест.КонтекстВызова = ЮТКоллекции.ПересечениеМассивов(Тест.КонтекстВызова, ФильтрТеста.Контекст);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЗначениеЗаполнено(Тест.КонтекстВызова);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ФильтрКонтекста(Тест, Фильтр)
|
||||
|
||||
Если НЕ Фильтр.ЕстьФильтрКонтекстов Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Тест.КонтекстВызова = ЮТКоллекции.ПересечениеМассивов(Тест.КонтекстВызова, Фильтр.Контексты);
|
||||
|
||||
Возврат ЗначениеЗаполнено(Тест.КонтекстВызова);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ФильтрТегов(Тест, Фильтр, СостояниеФильтрации)
|
||||
|
||||
Если НЕ Фильтр.ЕстьФильтрТегов Или СостояниеФильтрации.ПодходитПодФильтрТегов Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Тег Из Тест.Теги Цикл
|
||||
|
||||
Если Фильтр.Теги.Свойство(Тег) Тогда
|
||||
Возврат Истина;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Ложь;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -62,9 +62,8 @@
|
||||
Функция ИсполняемыеСценарииМодуля(Знач МетаданныеМодуля) Экспорт
|
||||
|
||||
ЭтоТестовыйМодуль = Истина;
|
||||
ОписаниеТестовогоМодуля = ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив);
|
||||
|
||||
ЮТТестыСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля);
|
||||
ЮТСобытияСлужебный.ПередЧтениемСценариевМодуля(МетаданныеМодуля);
|
||||
|
||||
ПолноеИмяМетода = МетаданныеМодуля.Имя + "." + ИмяМетодаСценариев();
|
||||
Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ПолноеИмяМетода);
|
||||
@ -88,16 +87,15 @@
|
||||
|
||||
НаборПоУмолчанию = ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя);
|
||||
ЮТРегистрацияОшибокСлужебный.ЗарегистрироватьОшибкуЧтенияТестов(НаборПоУмолчанию, "Ошибка формирования списка тестовых методов", Ошибка);
|
||||
|
||||
ОписаниеТестовогоМодуля = ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля, Новый Массив);
|
||||
ОписаниеТестовогоМодуля.НаборыТестов.Добавить(НаборПоУмолчанию);
|
||||
|
||||
ИначеЕсли ЭтоТестовыйМодуль Тогда
|
||||
|
||||
ЮТТестыСлужебный.ПослеЧтенияСценариевМодуля();
|
||||
Сценарии = ЮТТестыСлужебный.СценарииМодуля();
|
||||
|
||||
ОписаниеТестовогоМодуля.НаборыТестов = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Сценарии.ТестовыеНаборы, МетаданныеМодуля);
|
||||
ОписаниеТестовогоМодуля.НастройкиВыполнения = Сценарии.НастройкиВыполнения;
|
||||
ОписаниеТестовогоМодуля.Зависимости = Сценарии.Зависимости;
|
||||
ОписаниеТестовогоМодуля = ЮТТестыСлужебный.ОписаниеМодуля();
|
||||
ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеТестовогоМодуля);
|
||||
ЮТСобытияСлужебный.ПослеЧтенияСценариевМодуля(ОписаниеТестовогоМодуля);
|
||||
|
||||
Иначе
|
||||
|
||||
|
@ -6,5 +6,6 @@
|
||||
<value>Загрузка тестов</value>
|
||||
</synonym>
|
||||
<includeHelpInContents>true</includeHelpInContents>
|
||||
<content>CommonModule.ЮТТестыСлужебный</content>
|
||||
<parentSubsystem>Subsystem.ЮТПодключаемыеМодули.Subsystem.ОбработчикиСобытий</parentSubsystem>
|
||||
</mdclass:Subsystem>
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты
|
||||
ЮТТесты.Тег("Мокирование")
|
||||
.ДобавитьТест("Обучение")
|
||||
.ДобавитьТест("Обучение_ЦепочкаВызовов")
|
||||
.ДобавитьТест("Проверить")
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты
|
||||
ЮТТесты.Тег("Мокирование")
|
||||
.ДобавитьТест("ВыброситьИсключение")
|
||||
.ДобавитьСерверныйТест("ФормированиеТипыПерехватываемыхОбъектов")
|
||||
;
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты
|
||||
ЮТТесты.Тег("Мокирование")
|
||||
.ДобавитьТест("ДанныеПерехвата")
|
||||
;
|
||||
|
||||
|
@ -20,7 +20,8 @@
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты.УдалениеТестовыхДанных()
|
||||
ЮТТесты.Вызов(ТегиТестов.Мокирование())
|
||||
.УдалениеТестовыхДанных()
|
||||
.ДобавитьТест("ЗаполнитьСправочник")
|
||||
.ДобавитьТест("ЗаполнитьДокумент")
|
||||
.ДобавитьТест("СоздатьЗаписьРегистраСведений")
|
||||
@ -32,7 +33,7 @@
|
||||
.ДобавитьТест("СоздатьГруппу")
|
||||
.ДобавитьТест("УстановитьРеквизиты")
|
||||
.ДобавитьТест("УстановитьСсылкуНового")
|
||||
;
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@ -24,34 +24,40 @@
|
||||
.ДобавитьТест("ЭтоПодходящееРасширение")
|
||||
.ДобавитьТест("ЭтоПодходящийМодуль")
|
||||
.ДобавитьТест("ОтфильтроватьТестовыеНаборы")
|
||||
;
|
||||
.Добавитьтест("Фильтр_ПолноеИмяТеста")
|
||||
.Добавитьтест("Фильтр_Контексты")
|
||||
.Добавитьтест("Фильтр_ТегиМодуля")
|
||||
.Добавитьтест("Фильтр_ТегиНабора")
|
||||
.Добавитьтест("Фильтр_ТегиТеста")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЭтоПодходящееРасширение() Экспорт
|
||||
|
||||
Варианты = Новый Массив();
|
||||
Ключи = "ИмяРасширения, Параметры, Результат, Описание";
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("test", "тесты");
|
||||
Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс"));
|
||||
Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр"));
|
||||
Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второе расширение"));
|
||||
Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Отсутствующее расширение"));
|
||||
Варианты = ЮТест.Варианты("ИмяРасширения, Параметры, Результат, Описание");
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Без фильтр по расширениям 1"));
|
||||
Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Истина, "Без фильтр по расширениям 2"));
|
||||
Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("test", "тесты");
|
||||
Варианты.Добавить("test", Параметры, Истина, "Простой кейс");
|
||||
Варианты.Добавить("TeST", Параметры, Истина, "Изменен регистр");
|
||||
Варианты.Добавить("тесты", Параметры, Истина, "Второе расширение");
|
||||
Варианты.Добавить("_test", Параметры, Ложь, "Отсутствующее расширение");
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Варианты.Добавить("test", Параметры, Истина, "Без фильтр по расширениям 1");
|
||||
Варианты.Добавить("_test", Параметры, Истина, "Без фильтр по расширениям 2");
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("test.method");
|
||||
Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Фильтр по пути"));
|
||||
Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Истина, "Фильтр по пути, отпустствующее расширение"));
|
||||
Варианты.Добавить("test", Параметры, Истина, "Фильтр по пути");
|
||||
Варианты.Добавить("_test", Параметры, Истина, "Фильтр по пути, отпустствующее расширение");
|
||||
|
||||
Для Каждого Вариант Из Варианты Цикл
|
||||
Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
|
||||
|
||||
ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры);
|
||||
УстановитьФильтр(Вариант.Параметры);
|
||||
Результат = ЮТФильтрацияСлужебный.ЭтоПодходящееРасширение(Вариант.ИмяРасширения);
|
||||
|
||||
ЮТест.ОжидаетЧто(Результат, Вариант.Описание).Равно(Вариант.Результат);
|
||||
|
||||
КонецЦикла;
|
||||
@ -60,90 +66,66 @@
|
||||
|
||||
Процедура ЭтоПодходящийМодуль() Экспорт
|
||||
|
||||
Варианты = Новый Массив();
|
||||
Ключи = "ИмяМодуля, Параметры, Результат, Описание";
|
||||
Варианты = ЮТест.Варианты("ИмяМодуля, Параметры, Результат, Описание");
|
||||
РасширениеПоУмолчанию = "__тесты___";
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test", "тесты");
|
||||
Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс"));
|
||||
Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр"));
|
||||
Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второй модуль"));
|
||||
Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Отсутствующий модуль"));
|
||||
|
||||
Варианты.Добавить("test", Параметры, Истина, "Простой кейс");
|
||||
Варианты.Добавить("TeST", Параметры, Истина, "Изменен регистр");
|
||||
Варианты.Добавить("тесты", Параметры, Истина, "Второй модуль");
|
||||
Варианты.Добавить("_test", Параметры, Ложь, "Отсутствующий модуль");
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Без фильтр по `module`"));
|
||||
Варианты.Добавить(Новый Структура(Ключи, "_module", Параметры, Истина, "Без фильтр по `_module`"));
|
||||
|
||||
Варианты.Добавить("module", Параметры, Истина, "Без фильтр по `module`");
|
||||
Варианты.Добавить("_module", Параметры, Истина, "Без фильтр по `_module`");
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module");
|
||||
Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве(РасширениеПоУмолчанию);
|
||||
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по модулю и по расширению с пересечением"));
|
||||
|
||||
Варианты.Добавить("module", Параметры, Истина, "Фильтр по модулю и по расширению с пересечением");
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module");
|
||||
Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("тесты");
|
||||
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по модулю и по расширению без пересечения"));
|
||||
Варианты.Добавить("module", Параметры, Ложь, "Фильтр по модулю и по расширению без пересечения");
|
||||
|
||||
// Фильтрация по именам тестовых методов
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method");
|
||||
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста"));
|
||||
Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Фильтр по имени теста, отсутствующему модулю"));
|
||||
Варианты.Добавить("module", Параметры, Истина, "Фильтр по имени теста");
|
||||
Варианты.Добавить("_test", Параметры, Ложь, "Фильтр по имени теста, отсутствующему модулю");
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method");
|
||||
Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве(РасширениеПоУмолчанию);
|
||||
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста и по расширению с пересечением"));
|
||||
Варианты.Добавить("module", Параметры, Истина, "Фильтр по имени теста и по расширению с пересечением");
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method");
|
||||
Параметры.filter.extensions = ЮТКоллекции.ЗначениеВМассиве("test");
|
||||
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по имени теста и по расширению без пересечения"));
|
||||
Варианты.Добавить("module", Параметры, Ложь, "Фильтр по имени теста и по расширению без пересечения");
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method");
|
||||
Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("module");
|
||||
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Истина, "Фильтр по имени теста и по модулю с пересечением"));
|
||||
Варианты.Добавить("module", Параметры, Истина, "Фильтр по имени теста и по модулю с пересечением");
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("module.method");
|
||||
Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test");
|
||||
Варианты.Добавить(Новый Структура(Ключи, "module", Параметры, Ложь, "Фильтр по имени теста и по модулю без пересечения"));
|
||||
Варианты.Добавить("module", Параметры, Ложь, "Фильтр по имени теста и по модулю без пересечения");
|
||||
|
||||
Для Каждого Вариант Из Варианты Цикл
|
||||
Для Каждого Вариант Из Варианты.СписокВариантов() Цикл
|
||||
|
||||
УстановитьФильтр(Вариант.Параметры);
|
||||
ОписаниеМодуля = МетаданныеМодуля(Вариант.ИмяМодуля, РасширениеПоУмолчанию);
|
||||
|
||||
ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры);
|
||||
ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля();
|
||||
ОписаниеМодуля.Имя = Вариант.ИмяМодуля;
|
||||
ОписаниеМодуля.Расширение = РасширениеПоУмолчанию;
|
||||
Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля);
|
||||
ЮТест.ОжидаетЧто(Результат, Вариант.Описание + ". Имя модуля:" + Вариант.ИмяМодуля).Равно(Вариант.Результат);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ЭтоПодходящийМетод() Экспорт
|
||||
|
||||
Варианты = Новый Массив();
|
||||
Ключи = "ИмяМодуля, Параметры, Результат, Описание";
|
||||
РасширениеПоУмолчанию = "__тесты___";
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.modules = ЮТКоллекции.ЗначениеВМассиве("test", "тесты");
|
||||
Варианты.Добавить(Новый Структура(Ключи, "test", Параметры, Истина, "Простой кейс"));
|
||||
Варианты.Добавить(Новый Структура(Ключи, "TeST", Параметры, Истина, "Изменен регистр"));
|
||||
Варианты.Добавить(Новый Структура(Ключи, "тесты", Параметры, Истина, "Второй модуль"));
|
||||
Варианты.Добавить(Новый Структура(Ключи, "_test", Параметры, Ложь, "Отсутствующий модуль"));
|
||||
|
||||
Для Каждого Вариант Из Варианты Цикл
|
||||
|
||||
ЮТФильтрацияСлужебный.УстановитьКонтекст(Вариант.Параметры);
|
||||
ОписаниеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля();
|
||||
ОписаниеМодуля.Имя = Вариант.ИмяМодуля;
|
||||
ОписаниеМодуля.Расширение = РасширениеПоУмолчанию;
|
||||
Результат = ЮТФильтрацияСлужебный.ЭтоПодходящийМодуль(ОписаниеМодуля);
|
||||
ЮТест.ОжидаетЧто(Результат, Вариант.Описание + ". Имя модуля:" + Вариант.ИмяМодуля).Равно(Вариант.Результат);
|
||||
|
||||
КонецЦикла;
|
||||
@ -169,7 +151,7 @@
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1");
|
||||
ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры);
|
||||
УстановитьФильтр(Параметры);
|
||||
|
||||
Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля);
|
||||
ЮТест.ОжидаетЧто(Результат, "Результат фильтрации")
|
||||
@ -189,7 +171,7 @@
|
||||
// 2
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер");
|
||||
ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры);
|
||||
УстановитьФильтр(Параметры);
|
||||
|
||||
Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля);
|
||||
ТестРезультата = Результат[0].Тесты[0];
|
||||
@ -200,7 +182,7 @@
|
||||
// 3
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.ВызовСервера");
|
||||
ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры);
|
||||
УстановитьФильтр(Параметры);
|
||||
|
||||
Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля);
|
||||
ЮТест.ОжидаетЧто(Результат, "Тест с указаниме недоступного контекста")
|
||||
@ -210,7 +192,7 @@
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
Параметры.filter.tests = ЮТКоллекции.ЗначениеВМассиве("ТестовыйМодуль.Тест1.Сервер");
|
||||
Параметры.filter.contexts = ЮТКоллекции.ЗначениеВМассиве(Контексты.КлиентУправляемоеПриложение);
|
||||
ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры);
|
||||
УстановитьФильтр(Параметры);
|
||||
|
||||
Результат = ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(Наборы, ОписаниеМодуля);
|
||||
ЮТест.ОжидаетЧто(Результат, "Тест с указаниме контекста и фильтра контекстов")
|
||||
@ -218,4 +200,188 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Фильтр_ПолноеИмяТеста() Экспорт
|
||||
|
||||
ИмяМодуля = "ТестовыйМодуль";
|
||||
ИмяТеста = "ТестовыйТест";
|
||||
|
||||
ОписаниеМодуля = ОписаниеМодуля(ИмяМодуля);
|
||||
НаборТестов = ОписаниеНабораТестов();
|
||||
НаборТестов.Тесты.Добавить(ОписаниеТеста(ИмяТеста));
|
||||
НаборТестов.Тесты.Добавить(ОписаниеТеста(ИмяТеста + "_"));
|
||||
НаборТестов.Тесты.Добавить(ОписаниеТеста(ИмяТеста, "НеСервер"));
|
||||
НаборТестов.Тесты.Добавить(ОписаниеТеста());
|
||||
ОписаниеМодуля.НаборыТестов.Добавить(НаборТестов);
|
||||
|
||||
УстановитьНовыйФильтр(, СтрШаблон("%1.%2", ИмяМодуля, ИмяТеста));
|
||||
ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля);
|
||||
|
||||
ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов)
|
||||
.ИмеетДлину(1)
|
||||
.Свойство("[0].Тесты").ИмеетДлину(1);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Фильтр_Контексты() Экспорт
|
||||
|
||||
ОписаниеМодуля = ОписаниеМодуля();
|
||||
НаборТестов = ОписаниеНабораТестов();
|
||||
НаборТестов.Тесты.Добавить(ОписаниеТеста()); // +
|
||||
НаборТестов.Тесты.Добавить(ОписаниеТеста(, "Сервер")); // +
|
||||
НаборТестов.Тесты.Добавить(ОписаниеТеста(, "Сервер, Сервер")); // +
|
||||
НаборТестов.Тесты.Добавить(ОписаниеТеста(, "Клиент"));
|
||||
ОписаниеМодуля.НаборыТестов.Добавить(НаборТестов);
|
||||
|
||||
УстановитьНовыйФильтр(, , "Сервер");
|
||||
ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля);
|
||||
|
||||
ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов)
|
||||
.ИмеетДлину(1)
|
||||
.Свойство("[0].Тесты").ИмеетДлину(3);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Фильтр_ТегиТеста() Экспорт
|
||||
|
||||
ОписаниеМодуля = ОписаниеМодуля();
|
||||
НаборТестов = ОписаниеНабораТестов();
|
||||
НаборТестов.Тесты.Добавить(ОписаниеТеста());
|
||||
НаборТестов.Тесты.Добавить(ОписаниеТеста(, , "Тег1"));
|
||||
НаборТестов.Тесты.Добавить(ОписаниеТеста(, , "Тег1, Тег2"));
|
||||
НаборТестов.Тесты.Добавить(ОписаниеТеста(, , "Тег2"));
|
||||
НаборТестов.Тесты.Добавить(ОписаниеТеста(, , "Тег11"));
|
||||
ОписаниеМодуля.НаборыТестов.Добавить(НаборТестов);
|
||||
|
||||
УстановитьНовыйФильтр(, , , "Тег1, Тег2, Т, _, Тег111");
|
||||
ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля);
|
||||
|
||||
ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов)
|
||||
.ИмеетДлину(1)
|
||||
.Свойство("[0].Тесты").ИмеетДлину(3);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Фильтр_ТегиНабора() Экспорт
|
||||
|
||||
Набор1 = ОписаниеНабораТестов();
|
||||
Набор1.Теги = ЮТКоллекции.ЗначениеВМассиве("ТегНабора");
|
||||
Набор1.Тесты.Добавить(ОписаниеТеста());
|
||||
Набор1.Тесты.Добавить(ОписаниеТеста());
|
||||
|
||||
Набор2 = ОписаниеНабораТестов();
|
||||
Набор2.Тесты.Добавить(ОписаниеТеста());
|
||||
Набор2.Тесты.Добавить(ОписаниеТеста(, , "ТегТеста"));
|
||||
|
||||
ОписаниеМодуля = ОписаниеМодуля();
|
||||
ДобавитьКопиюНабора(ОписаниеМодуля, Набор1);
|
||||
ДобавитьКопиюНабора(ОписаниеМодуля, Набор2);
|
||||
|
||||
УстановитьНовыйФильтр(, , , "ТегНабора");
|
||||
ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля);
|
||||
|
||||
ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов)
|
||||
.ИмеетДлину(1)
|
||||
.Свойство("[0].Тесты").ИмеетДлину(2);
|
||||
|
||||
ОписаниеМодуля = ОписаниеМодуля();
|
||||
ДобавитьКопиюНабора(ОписаниеМодуля, Набор1);
|
||||
ДобавитьКопиюНабора(ОписаниеМодуля, Набор2);
|
||||
|
||||
УстановитьНовыйФильтр(, , , "ТегНабора, ТегТеста");
|
||||
ЮТФильтрацияСлужебный.ОтфильтроватьТестовыеНаборы(ОписаниеМодуля);
|
||||
|
||||
ЮТест.ОжидаетЧто(ОписаниеМодуля.НаборыТестов)
|
||||
.ИмеетДлину(2)
|
||||
.Свойство("[0].Тесты").ИмеетДлину(2)
|
||||
.Свойство("[1].Тесты").ИмеетДлину(1);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура Фильтр_ТегиМодуля() Экспорт
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Процедура УстановитьНовыйФильтр(Модули = Неопределено,
|
||||
Тесты = Неопределено,
|
||||
Контексты = Неопределено,
|
||||
Теги = Неопределено,
|
||||
Расширения = Неопределено)
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
|
||||
Если Расширения <> Неопределено Тогда
|
||||
Параметры.filter.extensions = ЮТСтроки.РазделитьСтроку(Расширения, ",");
|
||||
КонецЕсли;
|
||||
|
||||
Если Тесты <> Неопределено Тогда
|
||||
Параметры.filter.tests = ЮТСтроки.РазделитьСтроку(Тесты, ",");
|
||||
КонецЕсли;
|
||||
|
||||
Если Модули <> Неопределено Тогда
|
||||
Параметры.filter.modules = ЮТСтроки.РазделитьСтроку(Модули, ",");
|
||||
КонецЕсли;
|
||||
|
||||
Если Теги <> Неопределено Тогда
|
||||
Параметры.filter.tags = ЮТСтроки.РазделитьСтроку(Теги, ",");
|
||||
КонецЕсли;
|
||||
|
||||
Если Контексты <> Неопределено Тогда
|
||||
Параметры.filter.contexts = ЮТСтроки.РазделитьСтроку(Контексты, ",");
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьФильтр(Параметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьФильтр(Параметры)
|
||||
|
||||
ЮТФильтрацияСлужебный.УстановитьКонтекст(Параметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция МетаданныеМодуля(ИмяМодуля = "ТестовыйМодуль", Расширение = "ТестовоеРасширение")
|
||||
|
||||
МетаданныеМодуля = ЮТФабрикаСлужебный.ОписаниеМодуля();
|
||||
МетаданныеМодуля.Имя = ИмяМодуля;
|
||||
МетаданныеМодуля.Расширение = Расширение;
|
||||
|
||||
Возврат МетаданныеМодуля;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеМодуля(ИмяМодуля = "ТестовыйМодуль")
|
||||
|
||||
Возврат ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля(МетаданныеМодуля(ИмяМодуля), Новый Массив());
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеНабораТестов(Имя = "ТестовыйНабор", Теги = "")
|
||||
|
||||
Возврат ЮТФабрикаСлужебный.ОписаниеТестовогоНабора(Имя, Теги);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ОписаниеТеста(ИмяТеста = Неопределено, КонтекстыВызова = "Сервер, КлиентУправляемоеПриложение", Теги = "")
|
||||
|
||||
Если ИмяТеста = Неопределено Тогда
|
||||
ИмяТеста = ЮТест.Данные().СлучайнаяСтрока();
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЮТФабрикаСлужебный.ОписаниеТеста(ИмяТеста,
|
||||
ЮТест.Данные().СлучайнаяСтрока(),
|
||||
СтрРазделить(КонтекстыВызова, ", ", Ложь),
|
||||
Теги);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьКопиюНабора(ОписаниеМодуля, Набор)
|
||||
|
||||
ОписаниеМодуля.НаборыТестов.ДОбавить(ЮТКоллекции.СкопироватьРекурсивно(Набор));
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты
|
||||
ЮТТесты.Тег("Мокирование")
|
||||
.ДобавитьТест("Конструктор")
|
||||
.ДобавитьТест("УстановитьТело")
|
||||
;
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты
|
||||
ЮТТесты.Тег("Мокирование")
|
||||
.ДобавитьТест("Инициализировать")
|
||||
.ДобавитьТест("Добавить")
|
||||
.ДобавитьТест("MoveFirst")
|
||||
|
@ -20,7 +20,7 @@
|
||||
|
||||
Процедура ИсполняемыеСценарии() Экспорт
|
||||
|
||||
ЮТТесты
|
||||
ЮТТесты.Тег("ТестовыеДанные")
|
||||
.ДобавитьТест("Установить")
|
||||
.ДобавитьТест("УстановитьРеквизиты")
|
||||
.ДобавитьТест("Фикция")
|
||||
|
32
tests/src/CommonModules/ТегиТестов/Module.bsl
Normal file
32
tests/src/CommonModules/ТегиТестов/Module.bsl
Normal file
@ -0,0 +1,32 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2023 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.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция Мокирование() Экспорт
|
||||
|
||||
ЮТТесты.Тег("Мокирование");
|
||||
Возврат ТегиТестов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#КонецОбласти
|
11
tests/src/CommonModules/ТегиТестов/ТегиТестов.mdo
Normal file
11
tests/src/CommonModules/ТегиТестов/ТегиТестов.mdo
Normal 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="a92bd232-f801-4337-aae8-5e0ff73cd9fc">
|
||||
<name>ТегиТестов</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Теги тестов</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -65,6 +65,7 @@
|
||||
<commonModules>CommonModule.ПодпискиНаСобытия</commonModules>
|
||||
<commonModules>CommonModule.Пользователи</commonModules>
|
||||
<commonModules>CommonModule.ПомощникТестированияВызовСервера</commonModules>
|
||||
<commonModules>CommonModule.ТегиТестов</commonModules>
|
||||
<commonModules>CommonModule.ТестовыеДанные</commonModules>
|
||||
<catalogs>Catalog.Встречи</catalogs>
|
||||
<catalogs>Catalog.Товары</catalogs>
|
||||
|
Loading…
x
Reference in New Issue
Block a user