diff --git a/exts/yaxunit/src/CommonModules/ЮТНастройкиВыполнения/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТНастройкиВыполнения/Module.bsl index 9b4c756a..6a84a3be 100644 --- a/exts/yaxunit/src/CommonModules/ЮТНастройкиВыполнения/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТНастройкиВыполнения/Module.bsl @@ -47,6 +47,10 @@ Значение = КонтекстИсполнения.Набор.НастройкиВыполнения[ИмяНастройки]; + ИначеЕсли КонтекстИсполнения.Модуль <> Неопределено И КонтекстИсполнения.Модуль.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда + + Значение = КонтекстИсполнения.Модуль.НастройкиВыполнения[ИмяНастройки]; + Иначе ГлобальныеНастройки = ЮТКонтекст.ГлобальныеНастройкиВыполнения(); diff --git a/exts/yaxunit/src/CommonModules/ЮТТесты/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТТесты/Module.bsl index 5aaf0a74..00d37cb9 100644 --- a/exts/yaxunit/src/CommonModules/ЮТТесты/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТТесты/Module.bsl @@ -367,12 +367,15 @@ // Возвращаемое значение: // Структура - Исполняемые сценарии: // * ТестовыеНаборы - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора - Тестовые наборы модуля +// * НастройкиВыполнения- Структура - Настройки исполнения теста Функция ИсполняемыеСценарии(МетаданныеМодуля) Структура = Новый Структура; Структура.Вставить("ТестовыеНаборы", Новый Массив()); + Структура.Вставить("НастройкиВыполнения", Новый Структура()); Набор = ЮТФабрика.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); + Набор.НастройкиВыполнения = Структура.НастройкиВыполнения; // Общие настройки с набором по умолчанию Структура.ТестовыеНаборы.Добавить(Набор); Возврат Структура; diff --git a/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl index 1b5dbe2a..6f92f07c 100644 --- a/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl @@ -198,12 +198,14 @@ // * МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля // * НаборыТестов - Массив из см. ЮТФабрика.ОписаниеТестовогоНабора // * Ошибки - Массив из см. ЮТФабрика.ОписаниеВозникшейОшибки +// * НастройкиВыполнения- Структура - Настройки исполнения теста Функция ОписаниеТестовогоМодуля(МетаданныеМодуля, НаборыТестов) Экспорт Описание = Новый Структура; Описание.Вставить("МетаданныеМодуля", МетаданныеМодуля); Описание.Вставить("НаборыТестов", НаборыТестов); Описание.Вставить("Ошибки", Новый Массив); + Описание.Вставить("НастройкиВыполнения", Новый Структура()); Возврат Описание; diff --git a/exts/yaxunit/src/CommonModules/ЮТЧитатель/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТЧитатель/Module.bsl index df73e297..6eb10086 100644 --- a/exts/yaxunit/src/CommonModules/ЮТЧитатель/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТЧитатель/Module.bsl @@ -31,16 +31,15 @@ ЮТФильтрация.УстановитьКонтекст(ПараметрыЗапускаТестов); - Для Каждого ОписаниеМодуля Из ТестовыеМодули() Цикл + Для Каждого МетаданныеМодуля Из ТестовыеМодули() Цикл - НаборыТестов = ТестовыеНаборыМодуля(ОписаниеМодуля, ПараметрыЗапускаТестов); + ОписаниеТестовогоМодуля = ТестовыеНаборыМодуля(МетаданныеМодуля, ПараметрыЗапускаТестов); - Если НаборыТестов = Неопределено Тогда + Если ОписаниеТестовогоМодуля = Неопределено Тогда Продолжить; КонецЕсли; - ТестовыйМодуль = ЮТФабрика.ОписаниеТестовогоМодуля(ОписаниеМодуля, НаборыТестов); - Результат.Добавить(ТестовыйМодуль); + Результат.Добавить(ОписаниеТестовогоМодуля); КонецЦикла; @@ -51,17 +50,19 @@ // ПрочитатьНаборТестов // Читает набор тестов из модуля // Параметры: -// ОписаниеМодуля - см. ЮТФабрика.ОписаниеМодуля +// МетаданныеМодуля - см. ЮТФабрика.ОписаниеМодуля // // Возвращаемое значение: -// Неопределено, Массив из см. ЮТФабрика.ОписаниеТестовогоНабора- Если прочитано, то будет возвращено описание наборов -Функция ИсполняемыеСценарииМодуля(ОписаниеМодуля) Экспорт +// - Неопределено - Если это не тестовый модуль +// - см. ЮТФабрика.ОписаниеТестовогоМодуля +Функция ИсполняемыеСценарииМодуля(МетаданныеМодуля) Экспорт ЭтоТестовыйМодуль = Истина; + ОписаниеТестовогоМодуля = ЮТФабрика.ОписаниеТестовогоМодуля(МетаданныеМодуля, Неопределено); - ЮТТесты.ПередЧтениемСценариевМодуля(ОписаниеМодуля); + ЮТТесты.ПередЧтениемСценариевМодуля(МетаданныеМодуля); - ПолноеИмяМетода = ОписаниеМодуля.Имя + "." + ИмяМетодаСценариев(); + ПолноеИмяМетода = МетаданныеМодуля.Имя + "." + ИмяМетодаСценариев(); Ошибка = ЮТОбщий.ВыполнитьМетод(ПолноеИмяМетода); Если Ошибка <> Неопределено Тогда @@ -81,26 +82,25 @@ Если Ошибка <> Неопределено Тогда - Данные = Новый Массив(); // Фиксируем, чтобы отобразить в отчете - Описание = ЮТФабрика.ОписаниеТестовогоНабора(ОписаниеМодуля.Имя); - ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуЧтенияТестов(Описание, "Ошибка формирования списка тестовых методов", Ошибка); - - Данные.Добавить(Описание); + НаборПоУмолчанию = ЮТФабрика.ОписаниеТестовогоНабора(МетаданныеМодуля.Имя); + ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуЧтенияТестов(НаборПоУмолчанию, "Ошибка формирования списка тестовых методов", Ошибка); + ОписаниеТестовогоМодуля.НаборыТестов.Добавить(НаборПоУмолчанию); ИначеЕсли ЭтоТестовыйМодуль Тогда ЮТТесты.ПослеЧтенияСценариевМодуля(); Сценарии = ЮТТесты.СценарииМодуля(); - Данные = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Сценарии.ТестовыеНаборы, ОписаниеМодуля); + ОписаниеТестовогоМодуля.НаборыТестов = ЮТФильтрация.ОтфильтроватьТестовыеНаборы(Сценарии.ТестовыеНаборы, МетаданныеМодуля); + ОписаниеТестовогоМодуля.НастройкиВыполнения = Сценарии.НастройкиВыполнения; Иначе - Данные = Неопределено; + ОписаниеТестовогоМодуля = Неопределено; КонецЕсли; - Возврат Данные; + Возврат ОписаниеТестовогоМодуля; КонецФункции @@ -171,34 +171,46 @@ КонецФункции -Функция ТестовыеНаборыМодуля(Модуль, ПараметрыЗапуска) +Функция ТестовыеНаборыМодуля(МетаданныеМодуля, ПараметрыЗапуска) // TODO Фильтрация по путям - НаборыТестов = Неопределено; + ОписаниеМодуля = Неопределено; #Если ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда - Если Модуль.КлиентОбычноеПриложение ИЛИ Модуль.КлиентУправляемоеПриложение Тогда - НаборыТестов = ИсполняемыеСценарииМодуля(Модуль); - ИначеЕсли Модуль.Сервер Тогда - НаборыТестов = ЮТЧитательСервер.ИсполняемыеСценарииМодуля(Модуль); + Если МетаданныеМодуля.КлиентОбычноеПриложение ИЛИ МетаданныеМодуля.КлиентУправляемоеПриложение Тогда + + ОписаниеМодуля = ИсполняемыеСценарииМодуля(МетаданныеМодуля); + + ИначеЕсли МетаданныеМодуля.Сервер Тогда + + ОписаниеМодуля = ЮТЧитательСервер.ИсполняемыеСценарииМодуля(МетаданныеМодуля); ЮТЛогирование.ВывестиСерверныеСообщения(); + КонецЕсли; #ИначеЕсли Сервер Тогда - Если Модуль.Сервер Тогда - НаборыТестов = ИсполняемыеСценарииМодуля(Модуль); + Если МетаданныеМодуля.Сервер Тогда + + ОписаниеМодуля = ИсполняемыеСценарииМодуля(МетаданныеМодуля); + Иначе + ВызватьИсключение "Чтение списка тестов модуля в недоступном контексте"; + КонецЕсли; #ИначеЕсли Клиент Тогда - Если Модуль.КлиентУправляемоеПриложение Тогда - НаборыТестов = ИсполняемыеСценарииМодуля(Модуль); - ИначеЕсли Модуль.Сервер Тогда - НаборыТестов = ЮТЧитательСервер.ИсполняемыеСценарииМодуля(Модуль); + Если МетаданныеМодуля.КлиентУправляемоеПриложение Тогда + + ОписаниеМодуля = ИсполняемыеСценарииМодуля(МетаданныеМодуля); + + ИначеЕсли МетаданныеМодуля.Сервер Тогда + + ОписаниеМодуля = ЮТЧитательСервер.ИсполняемыеСценарииМодуля(МетаданныеМодуля); ЮТЛогирование.ВывестиСерверныеСообщения(); + КонецЕсли; #КонецЕсли - - Возврат НаборыТестов; + + Возврат ОписаниеМодуля; КонецФункции