From 9b89c46fccef7b3ea424b83dc97af50fdb2fc26d Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 7 Apr 2023 01:07:02 +0300 Subject: [PATCH 1/7] =?UTF-8?q?=D0=A0=D0=B0=D0=B1=D0=BE=D1=82=D0=B0=20?= =?UTF-8?q?=D0=B1=D0=B5=D0=B7=20=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D1=8F=20=D1=81=D0=B8=D0=BD=D1=85?= =?UTF-8?q?=D1=80=D0=BE=D0=BD=D0=BD=D1=8B=D1=85=20=D0=BC=D0=B5=D1=82=D0=BE?= =?UTF-8?q?=D0=B4=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommonModules/ЮТИсполнитель/Module.bsl | 18 +- .../ЮТИсполнительКлиент/Module.bsl | 302 ++++++++++++++++++ .../ЮТИсполнительКлиент.mdo | 10 + .../src/CommonModules/ЮТКоллекции/Module.bsl | 77 +++++ .../CommonModules/ЮТКоллекции/ЮТКоллекции.mdo | 11 + .../ЮТНастройкиВыполнения/Module.bsl | 50 +++ .../ЮТНастройкиВыполнения.mdo | 11 + .../src/CommonModules/ЮТОбщий/Module.bsl | 19 +- .../src/CommonModules/ЮТОтчет/Module.bsl | 3 +- .../ЮТПараметрыЗапуска/Module.bsl | 58 +--- .../ЮТПараметрыЗапуска/ЮТПараметрыЗапуска.mdo | 1 - .../src/CommonModules/ЮТСобытия/Module.bsl | 2 +- .../src/CommonModules/ЮТФабрика/Module.bsl | 61 +++- .../src/CommonModules/ЮТФайлы/Module.bsl | 25 ++ .../src/CommonModules/ЮТФайлы/ЮТФайлы.mdo | 9 + .../src/Configuration/Configuration.mdo | 4 + .../ManagedApplicationModule.bsl | 2 +- .../src/CommonModules/ОМ_ЮТЧитатель/Module.bsl | 2 +- 18 files changed, 569 insertions(+), 96 deletions(-) create mode 100644 exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl create mode 100644 exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/ЮТИсполнительКлиент.mdo create mode 100644 exts/yaxunit/src/CommonModules/ЮТКоллекции/Module.bsl create mode 100644 exts/yaxunit/src/CommonModules/ЮТКоллекции/ЮТКоллекции.mdo create mode 100644 exts/yaxunit/src/CommonModules/ЮТНастройкиВыполнения/Module.bsl create mode 100644 exts/yaxunit/src/CommonModules/ЮТНастройкиВыполнения/ЮТНастройкиВыполнения.mdo create mode 100644 exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl create mode 100644 exts/yaxunit/src/CommonModules/ЮТФайлы/ЮТФайлы.mdo diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнитель/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнитель/Module.bsl index 5a3c26f3..312ce69c 100644 --- a/exts/yaxunit/src/CommonModules/ЮТИсполнитель/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТИсполнитель/Module.bsl @@ -32,7 +32,7 @@ Процедура ВыполнитьМодульноеТестирование(Параметры = Неопределено) Экспорт Если Параметры = Неопределено Тогда - Параметры = ЮТПараметрыЗапуска.ПараметрыЗапуска(ПараметрЗапуска); + Параметры = ЮТПараметрыЗапуска.ПараметрыЗапуска(ПараметрЗапуска, Неопределено); КонецЕсли; Если НЕ Параметры.ВыполнятьМодульноеТестирование Тогда @@ -44,7 +44,7 @@ ЮТСобытия.Инициализация(Параметры); // Повторно сохраним для передачи на сервер ЮТКонтекст.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекст.ГлобальныеНастройкиВыполнения()); - ЮТКонтекст.УстановитьКонтекстИсполнения(ДанныеКонтекстаИсполнения()); + ЮТКонтекст.УстановитьКонтекстИсполнения(ЮТФабрика.НовыйКонтекстИсполнения()); ЮТСобытия.ПередЧтениеСценариев(); ТестовыеМодули = ЮТЧитатель.ЗагрузитьТесты(Параметры); @@ -327,20 +327,6 @@ КонецПроцедуры -// Данные контекста исполнения. -// -// Возвращаемое значение: -// Структура - Данные контекста исполнения: -// * Уровень - Строка -Функция ДанныеКонтекстаИсполнения() - - Контекст = Новый Структура(); - Контекст.Вставить("Уровень", ""); - - Возврат Контекст; - -КонецФункции - // Описание категория набора тестов. // // Параметры: diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl new file mode 100644 index 00000000..dac7721c --- /dev/null +++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl @@ -0,0 +1,302 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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. +// +//©///////////////////////////////////////////////////////////////////////////©// + +///////////////////////////////////////////////////////////////////////////////// +// Экспортные процедуры и функции, предназначенные для использования другими +// объектами конфигурации или другими программами +///////////////////////////////////////////////////////////////////////////////// +#Область СлужебныйПрограммныйИнтерфейс + +Процедура ВыполнитьМодульноеТестирование() Экспорт + + ПараметрыИсполнения = ПараметрыИсполнения(); + ПараметрыИсполнения.АргументыЗапуска = ПараметрЗапуска; + + ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикЗагрузитьПараметры", ЭтотОбъект, ПараметрыИсполнения)); + ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикАнализПараметровЗапуска", ЭтотОбъект, ПараметрыИсполнения)); + ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикЗагрузитьТесты", ЭтотОбъект, ПараметрыИсполнения)); + ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикВыполнитьТестирование", ЭтотОбъект, ПараметрыИсполнения)); + ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикСохранитьОтчет", ЭтотОбъект, ПараметрыИсполнения)); + ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикСохранитьКодВозврата", ЭтотОбъект, ПараметрыИсполнения)); + ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикЗавершить", ЭтотОбъект, ПараметрыИсполнения)); + + ВызватьСледующийОбработчик(ПараметрыИсполнения); + +КонецПроцедуры + +Процедура ОбработчикЗагрузитьПараметры(Результат, ДополнительныеПараметры) Экспорт + + Обработчик = СледующийОбработчик(ДополнительныеПараметры); + ЮТПараметрыЗапуска.ПараметрыЗапуска(ДополнительныеПараметры.АргументыЗапуска, Обработчик); + +КонецПроцедуры + +Процедура ОбработчикАнализПараметровЗапуска(ПараметрыЗапуска, ДополнительныеПараметры) Экспорт + + ДополнительныеПараметры.ПараметрыЗапуска = ПараметрыЗапуска; + + Если НЕ ПараметрыЗапуска.ВыполнятьМодульноеТестирование Тогда + Возврат; + КонецЕсли; + + ВызватьСледующийОбработчик(ДополнительныеПараметры); + +КонецПроцедуры + +Процедура ОбработчикЗагрузитьТесты(Результат, ДополнительныеПараметры) Экспорт + + Параметры = ДополнительныеПараметры.ПараметрыЗапуска; + + ЮТКонтекст.ИнициализироватьКонтекст(); + ЮТКонтекст.УстановитьГлобальныеНастройкиВыполнения(Параметры.settings); + ЮТСобытия.Инициализация(Параметры); + // Повторно сохраним для передачи на сервер + ЮТКонтекст.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекст.ГлобальныеНастройкиВыполнения()); + ЮТКонтекст.УстановитьКонтекстИсполнения(ЮТФабрика.НовыйКонтекстИсполнения()); + + ЮТСобытия.ПередЧтениеСценариев(); + ТестовыеМодули = ЮТЧитатель.ЗагрузитьТесты(Параметры); + ЮТСобытия.ПослеЧтенияСценариев(ТестовыеМодули); + + КоллекцияКатегорийНаборов = Новый Массив(); + + Для Каждого ТестовыйМодуль Из ТестовыеМодули Цикл + КатегорииНаборов = КатегорииНаборовТестовМодуля(ТестовыйМодуль); + КоллекцияКатегорийНаборов.Добавить(КатегорииНаборов); + КонецЦикла; + + ЮТСобытия.ПослеФормированияИсполняемыхНаборовТестов(КоллекцияКатегорийНаборов); + ДополнительныеПараметры.КоллекцияКатегорийНаборов = КоллекцияКатегорийНаборов; + + ВызватьСледующийОбработчик(ДополнительныеПараметры); + +КонецПроцедуры + +Процедура ОбработчикВыполнитьТестирование(Результат, ДополнительныеПараметры) Экспорт + + РезультатыТестирования = Новый Массив(); + КоллекцияКатегорийНаборов = ДополнительныеПараметры.КоллекцияКатегорийНаборов; + + Для Каждого КатегорииНаборов Из КоллекцияКатегорийНаборов Цикл + + Результат = Новый Массив;// ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Клиентские, КатегорииНаборов.ТестовыйМодуль); + ЮТОбщий.ДополнитьМассив(РезультатыТестирования, Результат); + + Результат = ЮТИсполнительСервер.ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Серверные, КатегорииНаборов.ТестовыйМодуль); + ЮТЛогирование.ВывестиСерверныеСообщения(); + + ЮТОбщий.ДополнитьМассив(РезультатыТестирования, Результат); + + ЮТОбщий.ДополнитьМассив(РезультатыТестирования, КатегорииНаборов.Пропущенные); + + КонецЦикла; + + ДополнительныеПараметры.РезультатыТестирования = РезультатыТестирования; + ВызватьСледующийОбработчик(ДополнительныеПараметры); + +КонецПроцедуры + +Процедура ОбработчикСохранитьОтчет(Результат, ДополнительныеПараметры) Экспорт + + Обработчик = СледующийОбработчик(ДополнительныеПараметры); + ЮТОтчет.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик); + +КонецПроцедуры + +Процедура ОбработчикСохранитьКодВозврата(Результат, ДополнительныеПараметры) Экспорт + + ВызватьСледующийОбработчик(ДополнительныеПараметры); + +КонецПроцедуры + +Процедура ОбработчикЗавершить(Результат, ДополнительныеПараметры) Экспорт + + Параметры = ДополнительныеПараметры.ПараметрыЗапуска; + + Если Параметры.showReport Тогда + ПоказатьОтчет(ДополнительныеПараметры.РезультатыТестирования, Параметры); + ИначеЕсли Параметры.CloseAfterTests Тогда + ПрекратитьРаботуСистемы(Ложь); + КонецЕсли; + +КонецПроцедуры + +Процедура ВызватьОбработчик(Обработчик, Результат) Экспорт + + Если Обработчик <> Неопределено Тогда + ВыполнитьОбработкуОповещения(Обработчик, Результат); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +Процедура ВызватьСледующийОбработчик(ПараметрыИсполнения, Результат = Неопределено) + + Обработчик = СледующийОбработчик(ПараметрыИсполнения); + ВыполнитьОбработкуОповещения(Обработчик, Результат); + +КонецПроцедуры + +Функция СледующийОбработчик(ПараметрыИсполнения) + + ПараметрыИсполнения.ИндексСледующегоОбработчика = ПараметрыИсполнения.ИндексСледующегоОбработчика + 1; + Возврат ПараметрыИсполнения.Цепочка[ПараметрыИсполнения.ИндексСледующегоОбработчика]; + +КонецФункции + +Функция ПараметрыИсполнения() + + Параметры = Новый Структура(); + Параметры.Вставить("АргументыЗапуска"); + Параметры.Вставить("ПараметрыЗапуска"); + Параметры.Вставить("Цепочка", Новый Массив()); + Параметры.Вставить("ИндексСледующегоОбработчика", -1); + Параметры.Вставить("КоллекцияКатегорийНаборов"); + Параметры.Вставить("РезультатыТестирования"); + Возврат Параметры; + +КонецФункции + +Функция КатегорииНаборовТестовМодуля(ТестовыйМодуль) + + КатегорииНаборов = ОписаниеКатегорияНабораТестов(ТестовыйМодуль); + + ИсполняемыеТестовыеНаборы = Новый Массив; + + Для Каждого ТестовыйНабор Из ТестовыйМодуль.НаборыТестов Цикл + + НаборыКонтекстов = Новый Структура; + + ТестыНабора = ЮТОбщий.ЗначениеСтруктуры(ТестовыйНабор, "Тесты", Новый Массив()); + + Для Каждого Тест Из ТестыНабора Цикл + + Для Каждого Контекст Из Тест.КонтекстВызова Цикл + + Если НЕ НаборыКонтекстов.Свойство(Контекст) Тогда + ИсполняемыйНабор = ЮТФабрика.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор, ТестовыйМодуль); + ИсполняемыйНабор.Режим = Контекст; + НаборыКонтекстов.Вставить(Контекст, ИсполняемыйНабор); + Иначе + ИсполняемыйНабор = НаборыКонтекстов[Контекст]; + КонецЕсли; + + ИсполняемыйТест = ЮТФабрика.ОписаниеИсполняемогоТеста(Тест, Контекст, ТестовыйМодуль); + ИсполняемыйНабор.Тесты.Добавить(ИсполняемыйТест); + + КонецЦикла; + + КонецЦикла; + + Если НаборыКонтекстов.Количество() Тогда + + Для Каждого Элемент Из НаборыКонтекстов Цикл + ИсполняемыеТестовыеНаборы.Добавить(Элемент.Значение); + КонецЦикла; + + Иначе + + // TODO. Корякин А. 2021.11.24 А надо ли добавлять при отсутствии тестов + ИсполняемыеТестовыеНаборы.Добавить(ЮТФабрика.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор, ТестовыйМодуль)); + + КонецЕсли; + + КонецЦикла; + + КонтекстыПриложения = ЮТФабрика.КонтекстыПриложения(); + КонтекстыМодуля = ЮТФабрика.КонтекстыМодуля(ТестовыйМодуль.МетаданныеМодуля); + КонтекстыИсполнения = ЮТФабрика.КонтекстыИсполнения(); + + Для Каждого Набор Из ИсполняемыеТестовыеНаборы Цикл + + КонтекстИсполнения = ЮТФабрика.КонтекстИсполнения(Набор.Режим); + + ОшибкаКонтекста = Неопределено; + Если КонтекстыПриложения.Найти(Набор.Режим) = Неопределено Тогда + ОшибкаКонтекста = "Неподдерживаемый режим запуска"; + ИначеЕсли КонтекстыМодуля.Найти(Набор.Режим) = Неопределено Тогда + ОшибкаКонтекста = "Модуль не доступен в этом контексте"; + ИначеЕсли КонтекстИсполнения <> КонтекстыИсполнения.Сервер И КонтекстИсполнения <> КонтекстыИсполнения.Клиент Тогда + ОшибкаКонтекста = "Неизвестный контекст/режим исполнения"; + КонецЕсли; + + Если ОшибкаКонтекста <> Неопределено Тогда + Набор.Выполнять = Ложь; + ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуРежимаВыполнения(Набор, ОшибкаКонтекста); + Для Каждого Тест Из Набор.Тесты Цикл + ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуРежимаВыполнения(Тест, ОшибкаКонтекста); + КонецЦикла; + КонецЕсли; + + Если НЕ Набор.Выполнять Тогда + КатегорииНаборов.Пропущенные.Добавить(Набор); + Продолжить; + КонецЕсли; + + Если КонтекстИсполнения = КонтекстыИсполнения.Сервер Тогда + + КатегорииНаборов.Серверные.Добавить(Набор); + + ИначеЕсли КонтекстИсполнения = КонтекстыИсполнения.Клиент Тогда + + КатегорииНаборов.Клиентские.Добавить(Набор); + + КонецЕсли; + + КонецЦикла; + + Возврат КатегорииНаборов; + +КонецФункции + +// Описание категория набора тестов. +// +// Параметры: +// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля +// +// Возвращаемое значение: +// Структура - Описание категория набора тестов: +// * ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля +// * Клиентские - Массив из ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// * Серверные - Массив из ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// * Пропущенные - Массив из ЮТФабрика.ОписаниеИсполняемогоНабораТестов +Функция ОписаниеКатегорияНабораТестов(ТестовыйМодуль) + + КатегорииНаборов = Новый Структура(); + КатегорииНаборов.Вставить("ТестовыйМодуль", ТестовыйМодуль); + КатегорииНаборов.Вставить("Клиентские", Новый Массив()); + КатегорииНаборов.Вставить("Серверные", Новый Массив()); + КатегорииНаборов.Вставить("Пропущенные", Новый Массив()); + + Возврат КатегорииНаборов; + +КонецФункции + +Процедура ПоказатьОтчет(РезультатыТестирования, Параметры) + + Данные = Новый Структура("РезультатыТестирования, ПараметрыЗапуска", РезультатыТестирования, Параметры); + АдресДанных = ПоместитьВоВременноеХранилище(Данные); + + ОткрытьФорму("Обработка.ЮТЮнитТесты.Форма.Основная", Новый Структура("АдресХранилища", АдресДанных)); + +КонецПроцедуры + +#КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/ЮТИсполнительКлиент.mdo b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/ЮТИсполнительКлиент.mdo new file mode 100644 index 00000000..049d96e6 --- /dev/null +++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/ЮТИсполнительКлиент.mdo @@ -0,0 +1,10 @@ + + + ЮТИсполнительКлиент + + ru + Исполнитель клиент + + true + true + diff --git a/exts/yaxunit/src/CommonModules/ЮТКоллекции/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТКоллекции/Module.bsl new file mode 100644 index 00000000..f16b2fb1 --- /dev/null +++ b/exts/yaxunit/src/CommonModules/ЮТКоллекции/Module.bsl @@ -0,0 +1,77 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +#Область Универсальные + +// Возвращает соответствие элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. +// +// Параметры: +// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки. +// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия. +// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции. +// Возвращаемое значение: +// Соответствие Из Произвольный - полученное соответствие. +Функция ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт + + Результат = Новый Соответствие(); + + Для Каждого ЭлементКоллекции Из Коллекция Цикл + + Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]); + + Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение); + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Возвращает структуру элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. +// +// Параметры: +// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки. +// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия. +// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции. +// Возвращаемое значение: +// Структура Из Произвольный - полученная структура. +Функция ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт + + Результат = Новый Структура(); + + Для Каждого ЭлементКоллекции Из Коллекция Цикл + + Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]); + + Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение); + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +#КонецОбласти + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТКоллекции/ЮТКоллекции.mdo b/exts/yaxunit/src/CommonModules/ЮТКоллекции/ЮТКоллекции.mdo new file mode 100644 index 00000000..bcc5e17b --- /dev/null +++ b/exts/yaxunit/src/CommonModules/ЮТКоллекции/ЮТКоллекции.mdo @@ -0,0 +1,11 @@ + + + ЮТКоллекции + + ru + Коллекции + + true + true + true + diff --git a/exts/yaxunit/src/CommonModules/ЮТНастройкиВыполнения/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТНастройкиВыполнения/Module.bsl new file mode 100644 index 00000000..aac17562 --- /dev/null +++ b/exts/yaxunit/src/CommonModules/ЮТНастройкиВыполнения/Module.bsl @@ -0,0 +1,50 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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. +// +//©///////////////////////////////////////////////////////////////////////////©// + +///////////////////////////////////////////////////////////////////////////////// +// Экспортные процедуры и функции, предназначенные для использования другими +// объектами конфигурации или другими программами +///////////////////////////////////////////////////////////////////////////////// +#Область СлужебныйПрограммныйИнтерфейс + +Функция ЗначениеНастройкиТеста(ИмяНастройки, ОписаниеТеста, ОписаниеТестовогоНабора, ЗначениеПоУмолчанию) Экспорт + + Значение = ЗначениеПоУмолчанию; + + Если ОписаниеТеста.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда + Значение = ОписаниеТеста.НастройкиВыполнения[ИмяНастройки]; + ИначеЕсли ОписаниеТестовогоНабора.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда + Значение = ОписаниеТестовогоНабора.НастройкиВыполнения[ИмяНастройки]; + Иначе + + ГлобальныеНастройки = ЮТКонтекст.ГлобальныеНастройкиВыполнения(); + Если ГлобальныеНастройки.Свойство(ИмяНастройки) Тогда + Значение = ГлобальныеНастройки[ИмяНастройки]; + КонецЕсли; + + КонецЕсли; + + Возврат Значение; + +КонецФункции + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТНастройкиВыполнения/ЮТНастройкиВыполнения.mdo b/exts/yaxunit/src/CommonModules/ЮТНастройкиВыполнения/ЮТНастройкиВыполнения.mdo new file mode 100644 index 00000000..12f5142d --- /dev/null +++ b/exts/yaxunit/src/CommonModules/ЮТНастройкиВыполнения/ЮТНастройкиВыполнения.mdo @@ -0,0 +1,11 @@ + + + ЮТНастройкиВыполнения + + ru + Параметры + + true + true + true + diff --git a/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl index 53cb6a1e..a5ccbece 100644 --- a/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl @@ -527,17 +527,8 @@ // Соответствие Из Произвольный - полученное соответствие. Функция КоллекцияВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт - Результат = Новый Соответствие(); - - Для Каждого ЭлементКоллекции Из Коллекция Цикл - - Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]); - - Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение); - - КонецЦикла; - - Возврат Результат; + ВызовУстаревшегоМетода("ЮТОбщий.КоллекцияВСоответствие", "ЮТКоллекции.ВСоответствие"); + Возврат ЮТКоллекции.ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения); КонецФункции @@ -572,7 +563,7 @@ Возврат Ложь; КонецЕсли; - Для каждого КлючИЗначение Из Данные1 Цикл + Для Каждого КлючИЗначение Из Данные1 Цикл СтароеЗначение = Неопределено; Если НЕ Данные2.Свойство(КлючИЗначение.Ключ, СтароеЗначение) @@ -593,7 +584,7 @@ КлючиНовогоСоответствия = Новый Соответствие; - Для каждого КлючИЗначение Из Данные1 Цикл + Для Каждого КлючИЗначение Из Данные1 Цикл КлючиНовогоСоответствия.Вставить(КлючИЗначение.Ключ, Истина); СтароеЗначение = Данные2.Получить(КлючИЗначение.Ключ); @@ -602,7 +593,7 @@ КонецЕсли; КонецЦикла; - Для каждого КлючИЗначение Из Данные2 Цикл + Для Каждого КлючИЗначение Из Данные2 Цикл Если КлючиНовогоСоответствия[КлючИЗначение.Ключ] = Неопределено Тогда Возврат Ложь; КонецЕсли; diff --git a/exts/yaxunit/src/CommonModules/ЮТОтчет/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТОтчет/Module.bsl index cf4fdaf7..b990f8dd 100644 --- a/exts/yaxunit/src/CommonModules/ЮТОтчет/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТОтчет/Module.bsl @@ -27,7 +27,8 @@ // Параметры: // РезультатВыполнения - Массив - Коллекция результатов выполнения, каждый элемент - структура, см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов // ПараметрыЗапуска - Структура - Параметры запуска, см. ЮТФабрика.ПараметрыЗапуска -Процедура СформироватьОтчет(РезультатВыполнения, ПараметрыЗапуска) Экспорт +// Обработчик - ОписаниеОповещения +Процедура СформироватьОтчет(РезультатВыполнения, ПараметрыЗапуска, Обработчик) Экспорт Модули = ЮТРасширения.ГенераторыОтчетов(); МодульОтчета = Неопределено; diff --git a/exts/yaxunit/src/CommonModules/ЮТПараметрыЗапуска/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТПараметрыЗапуска/Module.bsl index 07342742..26bdc456 100644 --- a/exts/yaxunit/src/CommonModules/ЮТПараметрыЗапуска/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТПараметрыЗапуска/Module.bsl @@ -16,24 +16,21 @@ // //©///////////////////////////////////////////////////////////////////////////©// -///////////////////////////////////////////////////////////////////////////////// -// Экспортные процедуры и функции, предназначенные для использования другими -// объектами конфигурации или другими программами -///////////////////////////////////////////////////////////////////////////////// -#Область ПрограммныйИнтерфейс +#Область СлужебныйПрограммныйИнтерфейс // ПараметрыЗапуска // Возвращает загруженные параметры запуска тестирования // Параметры: // ПараметрыЗапускаСтрокой - Строка - Параметры запуска приложения +// Обработчик - ОписаниеОповещения // // Возвращаемое значение: // см. ЮТФабрика.ПараметрыЗапуска -Функция ПараметрыЗапуска(Знач ПараметрыЗапускаСтрокой) Экспорт +Функция ПараметрыЗапуска(Знач ПараметрыЗапускаСтрокой, Обработчик) Экспорт Попытка - Параметры = ПрочитатьПараметрыЗапуска(ПараметрыЗапускаСтрокой); + Параметры = ПрочитатьПараметрыЗапуска(ПараметрыЗапускаСтрокой, Обработчик); Исключение @@ -54,55 +51,25 @@ #КонецОбласти -///////////////////////////////////////////////////////////////////////////////// -// Экспортные процедуры и функции для служебного использования внутри подсистемы -///////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -Функция ЗначениеНастройкиТеста(ИмяНастройки, ОписаниеТеста, ОписаниеТестовогоНабора, ЗначениеПоУмолчанию) Экспорт - - Значение = ЗначениеПоУмолчанию; - - Если ОписаниеТеста.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда - Значение = ОписаниеТеста.НастройкиВыполнения[ИмяНастройки]; - ИначеЕсли ОписаниеТестовогоНабора.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда - Значение = ОписаниеТестовогоНабора.НастройкиВыполнения[ИмяНастройки]; - Иначе - - ГлобальныеНастройки = ЮТКонтекст.ГлобальныеНастройкиВыполнения(); - Если ГлобальныеНастройки.Свойство(ИмяНастройки) Тогда - Значение = ГлобальныеНастройки[ИмяНастройки]; - КонецЕсли; - - КонецЕсли; - - Возврат Значение; - -КонецФункции - -#КонецОбласти - -///////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции, составляющие внутреннюю реализацию модуля -///////////////////////////////////////////////////////////////////////////////// - #Область СлужебныеПроцедурыИФункции // ПрочитатьПараметрыЗапуска // Читает параметры из строки запуска // Параметры: // ПараметрыЗапускаСтрокой - Строка - Строка с параметрами запуска. -// Содержит ключ запуска и строку с конфигурационным файлом. -// Формат строки "RunUnitTests=/путь/к/конфигурационному/файлу", где ключ указывается обязательно, а путь - по желанию +// Содержит ключ запуска и строку с конфигурационным файлом. +// Формат строки "RunUnitTests=/путь/к/конфигурационному/файлу", +// где ключ указывается обязательно, а путь - по желанию +// Обработчик - ОписаниеОповещения // // Возвращаемое значение: // см. ЮТФабрика.ПараметрыЗапуска -Функция ПрочитатьПараметрыЗапуска(Знач ПараметрыЗапускаСтрокой) +Функция ПрочитатьПараметрыЗапуска(Знач ПараметрыЗапускаСтрокой, Обработчик) Параметры = ЮТФабрика.ПараметрыЗапуска(); Если Не ЗначениеЗаполнено(ПараметрыЗапускаСтрокой) Тогда + ЮТИсполнительКлиент.ВызватьОбработчик(Обработчик, Параметры); Возврат Параметры; КонецЕсли; @@ -139,11 +106,12 @@ Если ЗначениеЗаполнено(КонфигурационныйФайл) Тогда ПараметрыИзФайла = ПрочитатьКонфигурационныйФайл(КонфигурационныйФайл); - ДополнитьПараметрыПрочитанными(Параметры, ПараметрыИзФайла); КонецЕсли; - + + ЮТИсполнительКлиент.ВызватьОбработчик(Обработчик, Параметры); + Возврат Параметры; КонецФункции diff --git a/exts/yaxunit/src/CommonModules/ЮТПараметрыЗапуска/ЮТПараметрыЗапуска.mdo b/exts/yaxunit/src/CommonModules/ЮТПараметрыЗапуска/ЮТПараметрыЗапуска.mdo index 461668a1..8f24fd55 100644 --- a/exts/yaxunit/src/CommonModules/ЮТПараметрыЗапуска/ЮТПараметрыЗапуска.mdo +++ b/exts/yaxunit/src/CommonModules/ЮТПараметрыЗапуска/ЮТПараметрыЗапуска.mdo @@ -7,6 +7,5 @@ Используется для обработки и дополнения параметров запуска тестов true - true true diff --git a/exts/yaxunit/src/CommonModules/ЮТСобытия/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТСобытия/Module.bsl index 63041ae7..8300463f 100644 --- a/exts/yaxunit/src/CommonModules/ЮТСобытия/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТСобытия/Module.bsl @@ -271,7 +271,7 @@ ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции; - Возврат ЮТПараметрыЗапуска.ЗначениеНастройкиТеста(ИмяПараметра, ОписаниеСобытия.Тест, ОписаниеСобытия.Набор, Ложь); + Возврат ЮТНастройкиВыполнения.ЗначениеНастройкиТеста(ИмяПараметра, ОписаниеСобытия.Тест, ОписаниеСобытия.Набор, Ложь); КонецФункции diff --git a/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl index 9eac94c1..239e506b 100644 --- a/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl @@ -82,7 +82,14 @@ // СтатусыИсполненияТеста // Возвращает перечисление возможных статусов выполнения теста, жизненный цикл теста // Возвращаемое значение: -// ФиксированнаяСтруктура - Статусы исполнения теста +// ФиксированнаяСтруктура - Статусы исполнения теста: +// * Ожидание- Строка - Тест не выполнялся +// * Исполнение- Строка - Тест выполняется в данный момент +// * Успешно- Строка - Тест успешно пройден +// * Ошибка- Строка - Тест упал с ошибкой выполнения +// * Сломан- Строка - Тест упал на проверках утверждений +// * Пропущен- Строка - Тест пропущен по каким либо причинам +// * НеРеализован- Строка - Тест не реализован Функция СтатусыИсполненияТеста() Экспорт Статусы = Новый Структура(); @@ -102,7 +109,7 @@ // Типы ошибок. // // Возвращаемое значение: -// ФиксированнаяСтруктура +// ФиксированнаяСтруктура - Типы возможных ошибок: // * ТестНеРеализован - Строка // * ОшибкаСравнения - Строка // * ОшибкаОбработкиСобытия - Строка @@ -121,6 +128,7 @@ Типы.Вставить(ТипОшибки.Ключ, ТипОшибки.Ключ); КонецЦикла; + //@skip-check constructor-function-return-section Возврат Новый ФиксированнаяСтруктура(Типы); КонецФункции @@ -131,20 +139,23 @@ ЮТПовторногоИспользования.ПараметрыТиповОшибок(); КонецЕсли; - Возврат ЮТТестовыеДанные.СтруктураMarkDown("Ключ", - "| Ключ | Представление | Статус | - ||--------------------------------|----------------------------------|--------------| - || ТестНеРеализован | Не реализован | НеРеализован | - || ОшибкаСравнения | Ошибка сравнения | Ошибка | - || ОшибкаОбработкиСобытия | Ошибка обработки события | Сломан | - || Утверждений | Ошибка утверждений | Ошибка | - || Исполнения | Ошибка исполнения | Сломан | - || ЧтенияТестов | Загрузки тестов | Сломан | - || МалоПараметров | Мало фактических параметров | Сломан | - || МногоПараметров | Много фактических параметров | Сломан | - || НекорректныйКонтекстИсполнения | Некорректный контекст исполнения | Пропущен | - || Пропущен | Пропущен | Пропущен | - |"); + Статусы = СтатусыИсполненияТеста(); + Реквизиты = "Ключ, Представление, Статус"; + + ТипыОшибок = Новый Массив(); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ТестНеРеализован", "Не реализован", Статусы.НеРеализован)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ТестНеРеализован", "Не реализован", Статусы.НеРеализован)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ОшибкаСравнения", "Ошибка сравнения", Статусы.Ошибка)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ОшибкаОбработкиСобытия", "Ошибка обработки события", Статусы.Сломан)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Утверждений", "Ошибка утверждений", Статусы.Ошибка)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Исполнения", "Ошибка исполнения", Статусы.Сломан)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ЧтенияТестов", "Загрузки тестов", Статусы.Сломан)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "МалоПараметров", "Мало фактических параметров", Статусы.Сломан)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "МногоПараметров", "Много фактических параметров", Статусы.Сломан)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "НекорректныйКонтекстИсполнения", "Некорректный контекст исполнения", Статусы.Пропущен)); + ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Пропущен", "Пропущен", Статусы.Пропущен)); + + Возврат ЮТКоллекции.ВСтруктуру(ТипыОшибок, "Ключ"); КонецФункции @@ -494,6 +505,24 @@ #КонецОбласти +#Область КонструкторыКонтекстов + +// Данные контекста исполнения. +// +// Возвращаемое значение: +// Структура - Данные контекста исполнения: +// * Уровень - Строка +Функция НовыйКонтекстИсполнения() Экспорт + + Контекст = Новый Структура(); + Контекст.Вставить("Уровень", ""); + + Возврат Контекст; + +КонецФункции + +#КонецОбласти + // КонтекстыМодуля // Возвращает коллекцию доступных контекстов выполнения модуля // Параметры: diff --git a/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl new file mode 100644 index 00000000..6b1c2284 --- /dev/null +++ b/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl @@ -0,0 +1,25 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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. +// +//©///////////////////////////////////////////////////////////////////////////©// + +#Область СлужебныйПрограммныйИнтерфейс + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТФайлы/ЮТФайлы.mdo b/exts/yaxunit/src/CommonModules/ЮТФайлы/ЮТФайлы.mdo new file mode 100644 index 00000000..6d6c26c6 --- /dev/null +++ b/exts/yaxunit/src/CommonModules/ЮТФайлы/ЮТФайлы.mdo @@ -0,0 +1,9 @@ + + + ЮТФайлы + + ru + Файлы + + true + diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 2fe83989..04847f56 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -40,7 +40,9 @@ CommonModule.МокитоСлужебный CommonModule.ЮТест CommonModule.ЮТИсполнитель + CommonModule.ЮТИсполнительКлиент CommonModule.ЮТИсполнительСервер + CommonModule.ЮТКоллекции CommonModule.ЮТКонструкторВариантов CommonModule.ЮТКонструкторТестовыхДанных CommonModule.ЮТКонтекст @@ -52,6 +54,7 @@ CommonModule.ЮТМетаданные CommonModule.ЮТМетаданныеПовтИсп CommonModule.ЮТМетаданныеСервер + CommonModule.ЮТНастройкиВыполнения CommonModule.ЮТОбщий CommonModule.ЮТОбщийВызовСервера CommonModule.ЮТОтчет @@ -68,6 +71,7 @@ CommonModule.ЮТТесты CommonModule.ЮТУтверждения CommonModule.ЮТФабрика + CommonModule.ЮТФайлы CommonModule.ЮТФильтрация CommonModule.ЮТЧитатель CommonModule.ЮТЧитательСервер diff --git a/exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl b/exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl index 67b918a3..49dfc427 100644 --- a/exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl +++ b/exts/yaxunit/src/Configuration/ManagedApplicationModule.bsl @@ -35,7 +35,7 @@ &После("ПриНачалеРаботыСистемы") Процедура ЮТПриНачалеРаботыСистемы() - ЮТИсполнитель.ВыполнитьМодульноеТестирование(); + ЮТИсполнительКлиент.ВыполнитьМодульноеТестирование(); КонецПроцедуры diff --git a/ТестыПример/src/CommonModules/ОМ_ЮТЧитатель/Module.bsl b/ТестыПример/src/CommonModules/ОМ_ЮТЧитатель/Module.bsl index 12b0b6b2..fb43e322 100644 --- a/ТестыПример/src/CommonModules/ОМ_ЮТЧитатель/Module.bsl +++ b/ТестыПример/src/CommonModules/ОМ_ЮТЧитатель/Module.bsl @@ -117,7 +117,7 @@ .Элемент(1).ИмеетТип("Структура") .Элемент(2).ИмеетТип("Структура") ; - + НаборПоУмолчанию = Сценарии[0]; НаборЭтоТестовыйМодуль = Сценарии[1]; НаборЗагрузкаТестов = Сценарии[2]; From cb5a68f1262a79f6bb6bf94435a9261e669f9a2c Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 7 Apr 2023 03:28:31 +0300 Subject: [PATCH 2/7] =?UTF-8?q?=D0=97=D0=B0=D0=BF=D1=83=D1=81=D1=82=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=82=D0=B5=D1=81=D1=82=D1=8B=20=D0=B2=20=D0=B0=D1=81?= =?UTF-8?q?=D0=B8=D0=BD=D1=85=D1=80=D0=BE=D0=BD=D0=BD=D0=BE=D0=BC=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B6=D0=B8=D0=BC=D0=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CommonModules/ЮТИсполнитель/Module.bsl | 409 ------------------ .../ЮТИсполнительКлиент/Module.bsl | 133 ++++-- .../ЮТИсполнительКлиентСервер/Module.bsl | 162 +++++++ .../ЮТИсполнительКлиентСервер.mdo} | 2 +- .../ЮТИсполнительСервер/Module.bsl | 16 +- .../src/CommonModules/ЮТКонтекст/Module.bsl | 9 +- .../CommonModules/ЮТЛогирование/Module.bsl | 2 +- .../src/CommonModules/ЮТОбщий/Module.bsl | 4 +- .../src/CommonModules/ЮТОтчет/Module.bsl | 97 +++-- .../src/CommonModules/ЮТСобытия/Module.bsl | 2 +- .../src/CommonModules/ЮТФабрика/Module.bsl | 24 + .../src/CommonModules/ЮТФайлы/Module.bsl | 46 +- .../src/CommonModules/ЮТФайлы/ЮТФайлы.mdo | 2 + .../src/Configuration/Configuration.mdo | 2 +- .../OrdinaryApplicationModule.bsl | 2 +- .../src/Subsystems/ЮТДвижок/ЮТДвижок.mdo | 2 +- .../ОМ_ЮТКонструкторТестовыхДанных/Module.bsl | 16 +- 17 files changed, 395 insertions(+), 535 deletions(-) delete mode 100644 exts/yaxunit/src/CommonModules/ЮТИсполнитель/Module.bsl create mode 100644 exts/yaxunit/src/CommonModules/ЮТИсполнительКлиентСервер/Module.bsl rename exts/yaxunit/src/CommonModules/{ЮТИсполнитель/ЮТИсполнитель.mdo => ЮТИсполнительКлиентСервер/ЮТИсполнительКлиентСервер.mdo} (86%) diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнитель/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнитель/Module.bsl deleted file mode 100644 index 312ce69c..00000000 --- a/exts/yaxunit/src/CommonModules/ЮТИсполнитель/Module.bsl +++ /dev/null @@ -1,409 +0,0 @@ -//©///////////////////////////////////////////////////////////////////////////©// -// -// 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. -// -//©///////////////////////////////////////////////////////////////////////////©// - -///////////////////////////////////////////////////////////////////////////////// -// Экспортные процедуры и функции, предназначенные для использования другими -// объектами конфигурации или другими программами -///////////////////////////////////////////////////////////////////////////////// -#Область ПрограммныйИнтерфейс - -#Если Клиент Тогда - -// ВыполнитьМодульноеТестирование -// Метод, по параметрам запуска, запускает выполнение всего процесса тестирования. -// -// Параметры: -// Параметры - См. ЮТФабрика.ПараметрыЗапуска -Процедура ВыполнитьМодульноеТестирование(Параметры = Неопределено) Экспорт - - Если Параметры = Неопределено Тогда - Параметры = ЮТПараметрыЗапуска.ПараметрыЗапуска(ПараметрЗапуска, Неопределено); - КонецЕсли; - - Если НЕ Параметры.ВыполнятьМодульноеТестирование Тогда - Возврат; - КонецЕсли; - - ЮТКонтекст.ИнициализироватьКонтекст(); - ЮТКонтекст.УстановитьГлобальныеНастройкиВыполнения(Параметры.settings); - ЮТСобытия.Инициализация(Параметры); - // Повторно сохраним для передачи на сервер - ЮТКонтекст.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекст.ГлобальныеНастройкиВыполнения()); - ЮТКонтекст.УстановитьКонтекстИсполнения(ЮТФабрика.НовыйКонтекстИсполнения()); - - ЮТСобытия.ПередЧтениеСценариев(); - ТестовыеМодули = ЮТЧитатель.ЗагрузитьТесты(Параметры); - ЮТСобытия.ПослеЧтенияСценариев(ТестовыеМодули); - - РезультатыТестирования = Новый Массив(); - - КоллекцияКатегорийНаборов = Новый Массив(); - Для Каждого ТестовыйМодуль Из ТестовыеМодули Цикл - - КатегорииНаборов = КатегорииНаборовТестовМодуля(ТестовыйМодуль); - КоллекцияКатегорийНаборов.Добавить(КатегорииНаборов); - - КонецЦикла; - - ЮТСобытия.ПослеФормированияИсполняемыхНаборовТестов(КоллекцияКатегорийНаборов); - - Для Каждого КатегорииНаборов Из КоллекцияКатегорийНаборов Цикл - - Результат = ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Клиентские, КатегорииНаборов.ТестовыйМодуль); - ЮТОбщий.ДополнитьМассив(РезультатыТестирования, Результат); - - Результат = ЮТИсполнительСервер.ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Серверные, КатегорииНаборов.ТестовыйМодуль); - ЮТЛогирование.ВывестиСерверныеСообщения(); - - ЮТОбщий.ДополнитьМассив(РезультатыТестирования, Результат); - - ЮТОбщий.ДополнитьМассив(РезультатыТестирования, КатегорииНаборов.Пропущенные); - - КонецЦикла; - - ЮТОтчет.СформироватьОтчет(РезультатыТестирования, Параметры); - - ЗаписатьКодВозврата(РезультатыТестирования, Параметры); - - Если Параметры.showReport Тогда - ПоказатьОтчет(РезультатыТестирования, Параметры); - ИначеЕсли Параметры.CloseAfterTests Тогда - ПрекратитьРаботуСистемы(Ложь); - КонецЕсли; - -КонецПроцедуры - -#КонецЕсли - -#КонецОбласти - -///////////////////////////////////////////////////////////////////////////////// -// Экспортные процедуры и функции для служебного использования внутри подсистемы -///////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -// Выполняет тесты группы наборов, соответствующих одному режиму выполнения (клиент/сервер) -// Параметры: -// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// -// Возвращаемое значение: -// Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов с заполненной информацией о выполнении -Функция ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль) Экспорт - - Если Наборы.Количество() = 0 Тогда - Возврат Наборы; - КонецЕсли; - - Уровни = ЮТФабрика.УровниИсполнения(); - ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.Модуль; - - ЮТСобытия.ПередВсемиТестамиМодуля(ТестовыйМодуль); - - Если ЕстьОшибки(ТестовыйМодуль) Тогда - СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки); - Возврат Наборы; - КонецЕсли; - - Для Каждого Набор Из Наборы Цикл - - Результат = ВыполнитьНаборТестов(Набор, ТестовыйМодуль); - - Если Результат <> Неопределено Тогда - Набор.Тесты = Результат; - КонецЕсли; - - КонецЦикла; - - ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.Модуль; - - ЮТСобытия.ПослеВсехТестовМодуля(ТестовыйМодуль); - - Если ЕстьОшибки(ТестовыйМодуль) Тогда - СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки); - КонецЕсли; - - ТестовыйМодуль.Ошибки.Очистить(); // Эти ошибки используются как буфер и уже скопированы в наборы, но ломают последующие наборы - - Возврат Наборы; - -КонецФункции - -#КонецОбласти - -///////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции, составляющие внутреннюю реализацию модуля -///////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныеПроцедурыИФункции - -Функция ВыполнитьНаборТестов(Набор, ТестовыйМодуль) - - Уровни = ЮТФабрика.УровниИсполнения(); - ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.НаборТестов; - - Набор.ДатаСтарта = ТекущаяУниверсальнаяДатаВМиллисекундах(); - ЮТСобытия.ПередТестовымНабором(ТестовыйМодуль, Набор); - - Если ЕстьОшибки(Набор) Тогда - Возврат Неопределено; - КонецЕсли; - - Результаты = Новый Массив(); - ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.Тест; - - Для Каждого Тест Из Набор.Тесты Цикл - - Тест.ДатаСтарта = ТекущаяУниверсальнаяДатаВМиллисекундах(); - - ЮТСобытия.ПередКаждымТестом(ТестовыйМодуль, Набор, Тест); - ВыполнитьТестовыйМетод(Тест); - ЮТСобытия.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест); - - ОбработатьЗавершениеТеста(Тест); - - Результаты.Добавить(Тест); - - КонецЦикла; - - ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.НаборТестов; - ЮТСобытия.ПослеТестовогоНабора(ТестовыйМодуль, Набор); - - Набор.Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Набор.ДатаСтарта; - - Возврат Результаты; - -КонецФункции - -Процедура ОбработатьЗавершениеТеста(Тест) - - Тест.Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Тест.ДатаСтарта; - Тест.Статус = ЮТРегистрацияОшибок.СтатусВыполненияТеста(Тест); - -КонецПроцедуры - -Функция КатегорииНаборовТестовМодуля(ТестовыйМодуль) - - КатегорииНаборов = ОписаниеКатегорияНабораТестов(ТестовыйМодуль); - - ИсполняемыеТестовыеНаборы = Новый Массив; - - Для Каждого ТестовыйНабор Из ТестовыйМодуль.НаборыТестов Цикл - - НаборыКонтекстов = Новый Структура; - - ТестыНабора = ЮТОбщий.ЗначениеСтруктуры(ТестовыйНабор, "Тесты", Новый Массив()); - - Для Каждого Тест Из ТестыНабора Цикл - - Для Каждого Контекст Из Тест.КонтекстВызова Цикл - - Если НЕ НаборыКонтекстов.Свойство(Контекст) Тогда - ИсполняемыйНабор = ЮТФабрика.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор, ТестовыйМодуль); - ИсполняемыйНабор.Режим = Контекст; - НаборыКонтекстов.Вставить(Контекст, ИсполняемыйНабор); - Иначе - ИсполняемыйНабор = НаборыКонтекстов[Контекст]; - КонецЕсли; - - ИсполняемыйТест = ЮТФабрика.ОписаниеИсполняемогоТеста(Тест, Контекст, ТестовыйМодуль); - ИсполняемыйНабор.Тесты.Добавить(ИсполняемыйТест); - - КонецЦикла; - - КонецЦикла; - - Если НаборыКонтекстов.Количество() Тогда - - Для Каждого Элемент Из НаборыКонтекстов Цикл - ИсполняемыеТестовыеНаборы.Добавить(Элемент.Значение); - КонецЦикла; - - Иначе - - // TODO. Корякин А. 2021.11.24 А надо ли добавлять при отсутствии тестов - ИсполняемыеТестовыеНаборы.Добавить(ЮТФабрика.ОписаниеИсполняемогоНабораТестов(ТестовыйНабор, ТестовыйМодуль)); - - КонецЕсли; - - КонецЦикла; - - КонтекстыПриложения = ЮТФабрика.КонтекстыПриложения(); - КонтекстыМодуля = ЮТФабрика.КонтекстыМодуля(ТестовыйМодуль.МетаданныеМодуля); - КонтекстыИсполнения = ЮТФабрика.КонтекстыИсполнения(); - - Для Каждого Набор Из ИсполняемыеТестовыеНаборы Цикл - - КонтекстИсполнения = ЮТФабрика.КонтекстИсполнения(Набор.Режим); - - ОшибкаКонтекста = Неопределено; - Если КонтекстыПриложения.Найти(Набор.Режим) = Неопределено Тогда - ОшибкаКонтекста = "Неподдерживаемый режим запуска"; - ИначеЕсли КонтекстыМодуля.Найти(Набор.Режим) = Неопределено Тогда - ОшибкаКонтекста = "Модуль не доступен в этом контексте"; - ИначеЕсли КонтекстИсполнения <> КонтекстыИсполнения.Сервер И КонтекстИсполнения <> КонтекстыИсполнения.Клиент Тогда - ОшибкаКонтекста = "Неизвестный контекст/режим исполнения"; - КонецЕсли; - - Если ОшибкаКонтекста <> Неопределено Тогда - Набор.Выполнять = Ложь; - ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуРежимаВыполнения(Набор, ОшибкаКонтекста); - Для Каждого Тест Из Набор.Тесты Цикл - ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуРежимаВыполнения(Тест, ОшибкаКонтекста); - КонецЦикла; - КонецЕсли; - - Если НЕ Набор.Выполнять Тогда - КатегорииНаборов.Пропущенные.Добавить(Набор); - Продолжить; - КонецЕсли; - - Если КонтекстИсполнения = КонтекстыИсполнения.Сервер Тогда - - КатегорииНаборов.Серверные.Добавить(Набор); - - ИначеЕсли КонтекстИсполнения = КонтекстыИсполнения.Клиент Тогда - - КатегорииНаборов.Клиентские.Добавить(Набор); - - КонецЕсли; - - КонецЦикла; - - Возврат КатегорииНаборов; - -КонецФункции - -Функция ЕстьОшибки(Объект) - - Возврат ЗначениеЗаполнено(Объект.Ошибки); - -КонецФункции - -Процедура ВыполнитьТестовыйМетод(Тест) - - Если ЕстьОшибки(Тест) Тогда - Возврат; - КонецЕсли; - - СтатусыИсполненияТеста = ЮТФабрика.СтатусыИсполненияТеста(); - Тест.Статус = СтатусыИсполненияТеста.Исполнение; - - Ошибка = ЮТОбщий.ВыполнитьМетод(Тест.ПолноеИмяМетода, Тест.Параметры); - - Если Ошибка <> Неопределено Тогда - ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка); - КонецЕсли; - -КонецПроцедуры - -Процедура СкопироватьОшибкиВ(Объекты, Ошибки) - - Для Каждого Объект Из Объекты Цикл - - ЮТОбщий.ДополнитьМассив(Объект.Ошибки, Ошибки); - - Если Объект.Свойство("Статус") Тогда - Объект.Статус = ЮТФабрика.СтатусыИсполненияТеста().Сломан; - КонецЕсли; - - КонецЦикла; - -КонецПроцедуры - -// Описание категория набора тестов. -// -// Параметры: -// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// -// Возвращаемое значение: -// Структура - Описание категория набора тестов: -// * ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// * Клиентские - Массив из ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// * Серверные - Массив из ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// * Пропущенные - Массив из ЮТФабрика.ОписаниеИсполняемогоНабораТестов -Функция ОписаниеКатегорияНабораТестов(ТестовыйМодуль) - - КатегорииНаборов = Новый Структура(); - КатегорииНаборов.Вставить("ТестовыйМодуль", ТестовыйМодуль); - КатегорииНаборов.Вставить("Клиентские", Новый Массив()); - КатегорииНаборов.Вставить("Серверные", Новый Массив()); - КатегорииНаборов.Вставить("Пропущенные", Новый Массив()); - - Возврат КатегорииНаборов; - -КонецФункции - -#Если Клиент Тогда -Процедура ПоказатьОтчет(РезультатыТестирования, Параметры) - - Данные = Новый Структура("РезультатыТестирования, ПараметрыЗапуска", РезультатыТестирования, Параметры); - АдресДанных = ПоместитьВоВременноеХранилище(Данные); - - ОткрытьФорму("Обработка.ЮТЮнитТесты.Форма.Основная", Новый Структура("АдресХранилища", АдресДанных)); - -КонецПроцедуры -#КонецЕсли - -// Записать код возврата. -// -// Параметры: -// РезультатыТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// Параметры - см. ЮТФабрика.ПараметрыЗапуска -Процедура ЗаписатьКодВозврата(РезультатыТестирования, Параметры) - - Успешно = Истина; - - Если ПустаяСтрока(Параметры.exitCode) Тогда - Возврат; - КонецЕсли; - - Для Каждого Набор Из РезультатыТестирования Цикл - - Если ЕстьОшибки(Набор) Тогда - Успешно = Ложь; - Прервать; - КонецЕсли; - - Для Каждого Тест Из Набор.Тесты Цикл - - Если ЕстьОшибки(Тест) Тогда - Успешно = Ложь; - Прервать; - КонецЕсли; - - КонецЦикла; - - Если НЕ Успешно Тогда - Прервать; - КонецЕсли; - - КонецЦикла; - -#Если ВебКлиент Тогда - ЮТОбщий.МетодНеДоступен("ЮТИсполнитель.ЗаписатьКодВозврата"); -#Иначе - Запись = Новый ЗаписьТекста(Параметры.exitCode, КодировкаТекста.UTF8); - Запись.ЗаписатьСтроку(?(Успешно, 0, 1)); - Запись.Закрыть(); -#КонецЕсли - -КонецПроцедуры - -#КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl index dac7721c..179c6b6a 100644 --- a/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl @@ -27,18 +27,38 @@ ПараметрыИсполнения = ПараметрыИсполнения(); ПараметрыИсполнения.АргументыЗапуска = ПараметрЗапуска; - ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикЗагрузитьПараметры", ЭтотОбъект, ПараметрыИсполнения)); - ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикАнализПараметровЗапуска", ЭтотОбъект, ПараметрыИсполнения)); - ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикЗагрузитьТесты", ЭтотОбъект, ПараметрыИсполнения)); - ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикВыполнитьТестирование", ЭтотОбъект, ПараметрыИсполнения)); - ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикСохранитьОтчет", ЭтотОбъект, ПараметрыИсполнения)); - ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикСохранитьКодВозврата", ЭтотОбъект, ПараметрыИсполнения)); - ПараметрыИсполнения.Цепочка.Добавить(Новый ОписаниеОповещения("ОбработчикЗавершить", ЭтотОбъект, ПараметрыИсполнения)); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьПараметры"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикАнализПараметровЗапуска"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьТесты"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикВыполнитьТестирование"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСохранитьОтчет"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСохранитьКодВозврата"); + ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗавершить"); ВызватьСледующийОбработчик(ПараметрыИсполнения); КонецПроцедуры +Процедура ВызватьОбработчик(Обработчик, Результат = Неопределено) Экспорт + + Если Обработчик <> Неопределено Тогда + ВыполнитьОбработкуОповещения(Обработчик, Результат); + КонецЕсли; + +КонецПроцедуры + +#КонецОбласти + +#Область СлужебныеПроцедурыИФункции + +#Область ОбработчикиЦепочкиДействий + +Процедура ОбработчикОшибки(ИнформацияОбОшибки, СтандартнаяОбработка, ДополнительныеПараметры) Экспорт + + // TODO Подумать надо ли и как реализовать нормально + +КонецПроцедуры + Процедура ОбработчикЗагрузитьПараметры(Результат, ДополнительныеПараметры) Экспорт Обработчик = СледующийОбработчик(ДополнительныеПараметры); @@ -94,7 +114,7 @@ Для Каждого КатегорииНаборов Из КоллекцияКатегорийНаборов Цикл - Результат = Новый Массив;// ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Клиентские, КатегорииНаборов.ТестовыйМодуль); + Результат = ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Клиентские, КатегорииНаборов.ТестовыйМодуль); ЮТОбщий.ДополнитьМассив(РезультатыТестирования, Результат); Результат = ЮТИсполнительСервер.ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Серверные, КатегорииНаборов.ТестовыйМодуль); @@ -113,13 +133,18 @@ Процедура ОбработчикСохранитьОтчет(Результат, ДополнительныеПараметры) Экспорт - Обработчик = СледующийОбработчик(ДополнительныеПараметры); - ЮТОтчет.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик); + Если ЗначениеЗаполнено(ДополнительныеПараметры.ПараметрыЗапуска.reportPath) Тогда + Обработчик = СледующийОбработчик(ДополнительныеПараметры); + ЮТОтчет.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик); + Иначе + ВызватьСледующийОбработчик(ДополнительныеПараметры); + КонецЕсли; КонецПроцедуры Процедура ОбработчикСохранитьКодВозврата(Результат, ДополнительныеПараметры) Экспорт + ЗаписатьКодВозврата(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска); ВызватьСледующийОбработчик(ДополнительныеПараметры); КонецПроцедуры @@ -136,18 +161,8 @@ КонецПроцедуры -Процедура ВызватьОбработчик(Обработчик, Результат) Экспорт - - Если Обработчик <> Неопределено Тогда - ВыполнитьОбработкуОповещения(Обработчик, Результат); - КонецЕсли; - -КонецПроцедуры - #КонецОбласти -#Область СлужебныеПроцедурыИФункции - Процедура ВызватьСледующийОбработчик(ПараметрыИсполнения, Результат = Неопределено) Обработчик = СледующийОбработчик(ПараметрыИсполнения); @@ -162,6 +177,13 @@ КонецФункции +Процедура ДобавитьОбработчикЦепочки(ПараметрыИсполнения, ИмяМетода) + + Обработчик = Новый ОписаниеОповещения(ИмяМетода, ЭтотОбъект, ПараметрыИсполнения, "ОбработчикОшибки", ЭтотОбъект); + ПараметрыИсполнения.Цепочка.Добавить(Обработчик); + +КонецПроцедуры + Функция ПараметрыИсполнения() Параметры = Новый Структура(); @@ -171,13 +193,14 @@ Параметры.Вставить("ИндексСледующегоОбработчика", -1); Параметры.Вставить("КоллекцияКатегорийНаборов"); Параметры.Вставить("РезультатыТестирования"); + Возврат Параметры; КонецФункции Функция КатегорииНаборовТестовМодуля(ТестовыйМодуль) - КатегорииНаборов = ОписаниеКатегорияНабораТестов(ТестовыйМодуль); + КатегорииНаборов = ЮТФабрика.ОписаниеКатегорияНабораТестов(ТестовыйМодуль); ИсполняемыеТестовыеНаборы = Новый Массив; @@ -267,29 +290,6 @@ КонецФункции -// Описание категория набора тестов. -// -// Параметры: -// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// -// Возвращаемое значение: -// Структура - Описание категория набора тестов: -// * ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля -// * Клиентские - Массив из ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// * Серверные - Массив из ЮТФабрика.ОписаниеИсполняемогоНабораТестов -// * Пропущенные - Массив из ЮТФабрика.ОписаниеИсполняемогоНабораТестов -Функция ОписаниеКатегорияНабораТестов(ТестовыйМодуль) - - КатегорииНаборов = Новый Структура(); - КатегорииНаборов.Вставить("ТестовыйМодуль", ТестовыйМодуль); - КатегорииНаборов.Вставить("Клиентские", Новый Массив()); - КатегорииНаборов.Вставить("Серверные", Новый Массив()); - КатегорииНаборов.Вставить("Пропущенные", Новый Массив()); - - Возврат КатегорииНаборов; - -КонецФункции - Процедура ПоказатьОтчет(РезультатыТестирования, Параметры) Данные = Новый Структура("РезультатыТестирования, ПараметрыЗапуска", РезультатыТестирования, Параметры); @@ -299,4 +299,49 @@ КонецПроцедуры +// Записать код возврата. +// +// Параметры: +// РезультатыТестирования - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// Параметры - см. ЮТФабрика.ПараметрыЗапуска +Процедура ЗаписатьКодВозврата(РезультатыТестирования, Параметры) + + Успешно = Истина; + + Если ПустаяСтрока(Параметры.exitCode) Тогда + Возврат; + КонецЕсли; + + Для Каждого Набор Из РезультатыТестирования Цикл + + Если ЗначениеЗаполнено(Набор.Ошибки) Тогда + Успешно = Ложь; + Прервать; + КонецЕсли; + + Для Каждого Тест Из Набор.Тесты Цикл + + Если ЗначениеЗаполнено(Тест.Ошибки) Тогда + Успешно = Ложь; + Прервать; + КонецЕсли; + + КонецЦикла; + + Если НЕ Успешно Тогда + Прервать; + КонецЕсли; + + КонецЦикла; + +#Если ВебКлиент Тогда + ЮТОбщий.МетодНеДоступен("ЮТИсполнительКлиент.ЗаписатьКодВозврата"); +#Иначе + Запись = Новый ЗаписьТекста(Параметры.exitCode, КодировкаТекста.UTF8); + Запись.ЗаписатьСтроку(?(Успешно, 0, 1)); + Запись.Закрыть(); +#КонецЕсли + +КонецПроцедуры + #КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиентСервер/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиентСервер/Module.bsl new file mode 100644 index 00000000..0db8b6ed --- /dev/null +++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиентСервер/Module.bsl @@ -0,0 +1,162 @@ +//©///////////////////////////////////////////////////////////////////////////©// +// +// 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. +// +//©///////////////////////////////////////////////////////////////////////////©// + +///////////////////////////////////////////////////////////////////////////////// +// Экспортные процедуры и функции для служебного использования внутри подсистемы +///////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныйПрограммныйИнтерфейс + +// Выполняет тесты группы наборов, соответствующих одному режиму выполнения (клиент/сервер) +// Параметры: +// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля +// +// Возвращаемое значение: +// Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов с заполненной информацией о выполнении +Функция ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль) Экспорт + + Если Наборы.Количество() = 0 Тогда + Возврат Наборы; + КонецЕсли; + + Уровни = ЮТФабрика.УровниИсполнения(); + ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.Модуль; + + ЮТСобытия.ПередВсемиТестамиМодуля(ТестовыйМодуль); + + Если ЕстьОшибки(ТестовыйМодуль) Тогда + СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки); + Возврат Наборы; + КонецЕсли; + + Для Каждого Набор Из Наборы Цикл + + Результат = ВыполнитьНаборТестов(Набор, ТестовыйМодуль); + + Если Результат <> Неопределено Тогда + Набор.Тесты = Результат; + КонецЕсли; + + КонецЦикла; + + ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.Модуль; + + ЮТСобытия.ПослеВсехТестовМодуля(ТестовыйМодуль); + + Если ЕстьОшибки(ТестовыйМодуль) Тогда + СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки); + КонецЕсли; + + ТестовыйМодуль.Ошибки.Очистить(); // Эти ошибки используются как буфер и уже скопированы в наборы, но ломают последующие наборы + + Возврат Наборы; + +КонецФункции + +#КонецОбласти + +///////////////////////////////////////////////////////////////////////////////// +// Процедуры и функции, составляющие внутреннюю реализацию модуля +///////////////////////////////////////////////////////////////////////////////// + +#Область СлужебныеПроцедурыИФункции + +Функция ВыполнитьНаборТестов(Набор, ТестовыйМодуль) + + Уровни = ЮТФабрика.УровниИсполнения(); + ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.НаборТестов; + + Набор.ДатаСтарта = ТекущаяУниверсальнаяДатаВМиллисекундах(); + ЮТСобытия.ПередТестовымНабором(ТестовыйМодуль, Набор); + + Если ЕстьОшибки(Набор) Тогда + Возврат Неопределено; + КонецЕсли; + + Результаты = Новый Массив(); + ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.Тест; + + Для Каждого Тест Из Набор.Тесты Цикл + + Тест.ДатаСтарта = ТекущаяУниверсальнаяДатаВМиллисекундах(); + + ЮТСобытия.ПередКаждымТестом(ТестовыйМодуль, Набор, Тест); + ВыполнитьТестовыйМетод(Тест); + ЮТСобытия.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест); + + ОбработатьЗавершениеТеста(Тест); + + Результаты.Добавить(Тест); + + КонецЦикла; + + ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.НаборТестов; + ЮТСобытия.ПослеТестовогоНабора(ТестовыйМодуль, Набор); + + Набор.Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Набор.ДатаСтарта; + + Возврат Результаты; + +КонецФункции + +Процедура ОбработатьЗавершениеТеста(Тест) + + Тест.Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Тест.ДатаСтарта; + Тест.Статус = ЮТРегистрацияОшибок.СтатусВыполненияТеста(Тест); + +КонецПроцедуры + +Функция ЕстьОшибки(Объект) + + Возврат ЗначениеЗаполнено(Объект.Ошибки); + +КонецФункции + +Процедура ВыполнитьТестовыйМетод(Тест) + + Если ЕстьОшибки(Тест) Тогда + Возврат; + КонецЕсли; + + СтатусыИсполненияТеста = ЮТФабрика.СтатусыИсполненияТеста(); + Тест.Статус = СтатусыИсполненияТеста.Исполнение; + + Ошибка = ЮТОбщий.ВыполнитьМетод(Тест.ПолноеИмяМетода, Тест.Параметры); + + Если Ошибка <> Неопределено Тогда + ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка); + КонецЕсли; + +КонецПроцедуры + +Процедура СкопироватьОшибкиВ(Объекты, Ошибки) + + Для Каждого Объект Из Объекты Цикл + + ЮТОбщий.ДополнитьМассив(Объект.Ошибки, Ошибки); + + Если Объект.Свойство("Статус") Тогда + Объект.Статус = ЮТФабрика.СтатусыИсполненияТеста().Сломан; + КонецЕсли; + + КонецЦикла; + +КонецПроцедуры + +#КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнитель/ЮТИсполнитель.mdo b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиентСервер/ЮТИсполнительКлиентСервер.mdo similarity index 86% rename from exts/yaxunit/src/CommonModules/ЮТИсполнитель/ЮТИсполнитель.mdo rename to exts/yaxunit/src/CommonModules/ЮТИсполнительКлиентСервер/ЮТИсполнительКлиентСервер.mdo index c5f3c33a..28ea840c 100644 --- a/exts/yaxunit/src/CommonModules/ЮТИсполнитель/ЮТИсполнитель.mdo +++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиентСервер/ЮТИсполнительКлиентСервер.mdo @@ -1,6 +1,6 @@ - ЮТИсполнитель + ЮТИсполнительКлиентСервер ru Исполнитель diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнительСервер/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнительСервер/Module.bsl index 1217e721..9ca2cead 100644 --- a/exts/yaxunit/src/CommonModules/ЮТИсполнительСервер/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительСервер/Module.bsl @@ -16,14 +16,6 @@ // //©///////////////////////////////////////////////////////////////////////////©// -///////////////////////////////////////////////////////////////////////////////// -// Экспортные процедуры и функции, предназначенные для использования другими -// объектами конфигурации или другими программами -///////////////////////////////////////////////////////////////////////////////// -#Область ПрограммныйИнтерфейс - -#КонецОбласти - ///////////////////////////////////////////////////////////////////////////////// // Экспортные процедуры и функции для служебного использования внутри подсистемы ///////////////////////////////////////////////////////////////////////////////// @@ -41,14 +33,8 @@ // Массив - Результат прогона наборов тестов, структура набора см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов Функция ВыполнитьГруппуНаборовТестов(Знач Наборы, Знач ТестовыйМодуль) Экспорт - Возврат ЮТИсполнитель.ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль); + Возврат ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль); КонецФункции #КонецОбласти - -///////////////////////////////////////////////////////////////////////////////// -// Процедуры и функции, составляющие внутреннюю реализацию модуля -///////////////////////////////////////////////////////////////////////////////// -#Область СлужебныеПроцедурыИФункции -#КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТКонтекст/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТКонтекст/Module.bsl index f2a9ef10..ccc9ddd4 100644 --- a/exts/yaxunit/src/CommonModules/ЮТКонтекст/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТКонтекст/Module.bsl @@ -109,6 +109,7 @@ // Неопределено - Если метод вызывается за рамками теста Функция КонтекстТеста() Экспорт + //@skip-check constructor-function-return-section Возврат ЗначениеКонтекста(ИмяКонтекстаТеста()); КонецФункции @@ -127,6 +128,7 @@ // Неопределено - Если метод вызывается за рамками тестового набора Функция КонтекстНабора() Экспорт + //@skip-check constructor-function-return-section Возврат ЗначениеКонтекста(ИмяКонтекстаНабораТестов()); КонецФункции @@ -141,6 +143,7 @@ // Неопределено - Если метод вызывается за рамками тестового модуля Функция КонтекстМодуля() Экспорт + //@skip-check constructor-function-return-section Возврат ЗначениеКонтекста(ИмяКонтекстаМодуля()); КонецФункции @@ -165,6 +168,7 @@ // Неопределено, Структура - Контекст ошибки, см. ЮТРегистрацияОшибок.НовыйКонтекстОшибки Функция КонтекстОшибки() Экспорт + //@skip-check constructor-function-return-section Возврат ЗначениеКонтекста(ИмяКонтекстаОшибки()); КонецФункции @@ -175,6 +179,7 @@ // Неопределено, Структура - Контекст проверки Функция КонтекстПроверки() Экспорт + //@skip-check constructor-function-return-section Возврат ЗначениеКонтекста(ИмяКонтекстаУтверждений()); КонецФункции @@ -185,6 +190,7 @@ // Неопределено, Структура - Контекст проверки Функция КонтекстЧитателя() Экспорт + //@skip-check constructor-function-return-section Возврат ЗначениеКонтекста(ИмяКонтекстаЧитателя()); КонецФункции @@ -192,9 +198,10 @@ // КонтекстЧитателя // Возвращает служебный контекста, данные используемые исполнителем тестов // Возвращаемое значение: -// см. ЮТИсполнитель.ДанныеКонтекстаИсполнения +// см. ЮТФабрика.НовыйКонтекстИсполнения Функция КонтекстИсполнения() Экспорт + //@skip-check constructor-function-return-section Возврат ЗначениеКонтекста(ИмяКонтекстаИсполнения()); КонецФункции diff --git a/exts/yaxunit/src/CommonModules/ЮТЛогирование/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТЛогирование/Module.bsl index 4f317f82..163096ea 100644 --- a/exts/yaxunit/src/CommonModules/ЮТЛогирование/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТЛогирование/Module.bsl @@ -158,7 +158,7 @@ // Обработка события "ПослеФормированияИсполняемыхНаборовТестов" // Параметры: -// КоллекцияКатегорийНаборов - Массив из см. ЮТИсполнитель.ОписаниеКатегорияНабораТестов - Набор исполняемых наборов +// КоллекцияКатегорийНаборов - Массив из см. ЮТФабрика.ОписаниеКатегорияНабораТестов - Набор исполняемых наборов Процедура ПослеФормированияИсполняемыхНаборовТестов(КоллекцияКатегорийНаборов) Экспорт Количество = 0; diff --git a/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl index a5ccbece..653813b2 100644 --- a/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl @@ -727,8 +727,8 @@ // Булево - Это каталог Функция ЭтоКаталог(ПутьКФайлу) Экспорт - Файл = Новый Файл(ПутьКФайлу); - Возврат Файл.Существует() И Файл.ЭтоКаталог(); + ВызовУстаревшегоМетода("ЮТОбщий.ЭтоКаталог", "ЮТФайлы.ЭтоКаталог"); + Возврат ЮТФайлы.Существует(ПутьКФайлу) И ЮТФайлы.ЭтоКаталог(ПутьКФайлу); КонецФункции diff --git a/exts/yaxunit/src/CommonModules/ЮТОтчет/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТОтчет/Module.bsl index b990f8dd..861d646a 100644 --- a/exts/yaxunit/src/CommonModules/ЮТОтчет/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТОтчет/Module.bsl @@ -20,7 +20,7 @@ // Экспортные процедуры и функции, предназначенные для использования другими // объектами конфигурации или другими программами ///////////////////////////////////////////////////////////////////////////////// -#Область ПрограммныйИнтерфейс +#Область СлужебныйПрограммныйИнтерфейс // СформироватьОтчет // Формирует отчет о результатах тестирования по заданным параметрам @@ -30,77 +30,84 @@ // Обработчик - ОписаниеОповещения Процедура СформироватьОтчет(РезультатВыполнения, ПараметрыЗапуска, Обработчик) Экспорт - Модули = ЮТРасширения.ГенераторыОтчетов(); - МодульОтчета = Неопределено; + Если НЕ ЗначениеЗаполнено(ПараметрыЗапуска.reportPath) Тогда + ВызватьИсключение "Не указан путь сохранения отчета"; + КонецЕсли; - Для Каждого Модуль Из Модули Цикл - - Если Модуль.РеализуетФормат(ПараметрыЗапуска.reportFormat) Тогда - МодульОтчета = Модуль; - Прервать; - КонецЕсли; - - КонецЦикла; + МодульОтчета = МодульФормирования(ПараметрыЗапуска.reportFormat); Если МодульОтчета = Неопределено Тогда - ВызватьИсключение СтрШаблон("Отчет в формате %1 не поддерживается", ПараметрыЗапуска.reportFormat); - КонецЕсли; - ИмяФайлаОтчета = ИмяФайлаОтчета(Модуль, ПараметрыЗапуска); - ДанныеОтчета = Модуль.ДанныеОтчета(РезультатВыполнения); + ПараметрыФормирования = Новый Структура("РезультатВыполнения, ПараметрыЗапуска, Обработчик", РезультатВыполнения, ПараметрыЗапуска, Обработчик); + ПараметрыФормирования.Вставить("МодульОтчета", МодульОтчета); - Если ДанныеОтчета = Неопределено Тогда - - ВызватьИсключение "Не удалось получить данные отчета"; - - ИначеЕсли НЕ ЗначениеЗаполнено(ИмяФайлаОтчета) Тогда - - ВызватьИсключение "Не удалось сформировать имя файла отчета"; - - Иначе - - ДанныеОтчета.Записать(ИмяФайлаОтчета); - - КонецЕсли; + ОбработчикПолученияИмениФайла = Новый ОписаниеОповещения("ПослеФормированияИмениФайла", ЭтотОбъект, ПараметрыФормирования); + ИмяФайлаОтчета(ПараметрыФормирования, ОбработчикПолученияИмениФайла); КонецПроцедуры #КонецОбласти -///////////////////////////////////////////////////////////////////////////////// -// Экспортные процедуры и функции для служебного использования внутри подсистемы -///////////////////////////////////////////////////////////////////////////////// - -#Область СлужебныйПрограммныйИнтерфейс - -#КонецОбласти - ///////////////////////////////////////////////////////////////////////////////// // Процедуры и функции, составляющие внутреннюю реализацию модуля ///////////////////////////////////////////////////////////////////////////////// #Область СлужебныеПроцедурыИФункции -Функция ИмяФайлаОтчета(Модуль, ПараметрыЗапуска) +Процедура ИмяФайлаОтчета(ПараметрыФормирования, Обработчик) - ИмяФайла = Неопределено; + ПараметрыПроверки = Новый Структура("ПараметрыФормирования, Обработчик", ПараметрыФормирования, Обработчик); - ПутьКОтчету = ПараметрыЗапуска.reportPath; + ОбработчикПроверки = Новый ОписаниеОповещения("ПослеПроверкиКаталога", ЭтотОбъект, ПараметрыПроверки); + ЮТФайлы.ЭтоКаталог(ПараметрыФормирования.ПараметрыЗапуска.reportPath, ОбработчикПроверки); - Если НЕ ЗначениеЗаполнено(ПутьКОтчету) Тогда - ВызватьИсключение "Не указан путь сохранения отчета"; +КонецПроцедуры + +Функция МодульФормирования(Формат) + + Модули = ЮТРасширения.ГенераторыОтчетов(); + МодульОтчета = Неопределено; + + Для Каждого Модуль Из Модули Цикл + + Если Модуль.РеализуетФормат(Формат) Тогда + МодульОтчета = Модуль; + Прервать; + КонецЕсли; + + КонецЦикла; + + Возврат МодульОтчета; + +КонецФункции + +Процедура ПослеФормированияИмениФайла(ИмяФайлаОтчета, Параметры) Экспорт + + ДанныеОтчета = Параметры.МодульОтчета.ДанныеОтчета(Параметры.РезультатВыполнения); + + Если ДанныеОтчета = Неопределено Тогда + ВызватьИсключение "Не удалось получить данные отчета"; + Иначе + ДанныеОтчета.Записать(ИмяФайлаОтчета); КонецЕсли; - Если ЮТОбщий.ЭтоКаталог(ПутьКОтчету) Тогда - ИмяФайла = ЮТОбщий.ОбъединитьПути(ПутьКОтчету, Модуль.ИмяФайлаПоУмолчанию()); + ЮТИсполнительКлиент.ВызватьОбработчик(Параметры.Обработчик); + +КонецПроцедуры + +Процедура ПослеПроверкиКаталога(ЭтоКаталог, Параметры) Экспорт + + ПутьКОтчету = Параметры.ПараметрыФормирования.ПараметрыЗапуска.reportPath; + Если ЭтоКаталог Тогда + ИмяФайла = ЮТОбщий.ОбъединитьПути(ПутьКОтчету, Параметры.ПараметрыФормирования.МодульОтчета.ИмяФайлаПоУмолчанию()); Иначе ИмяФайла = ПутьКОтчету; КонецЕсли; - Возврат ИмяФайла; + ЮТИсполнительКлиент.ВызватьОбработчик(Параметры.Обработчик, ИмяФайла); -КонецФункции +КонецПроцедуры #КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТСобытия/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТСобытия/Module.bsl index 8300463f..77e40acb 100644 --- a/exts/yaxunit/src/CommonModules/ЮТСобытия/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТСобытия/Module.bsl @@ -186,7 +186,7 @@ // Обработка события "ПослеФормированияИсполняемыхНаборовТестов" // Параметры: -// КоллекцияКатегорийНаборов - Массив из см. ЮТИсполнитель.ОписаниеКатегорияНабораТестов - Набор исполняемых наборов +// КоллекцияКатегорийНаборов - Массив из см. ЮТФабрика.ОписаниеКатегорияНабораТестов - Набор исполняемых наборов Процедура ПослеФормированияИсполняемыхНаборовТестов(КоллекцияКатегорийНаборов) Экспорт Параметры = ЮТОбщий.ЗначениеВМассиве(КоллекцияКатегорийНаборов); diff --git a/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl index 239e506b..02d45120 100644 --- a/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl @@ -503,6 +503,30 @@ КонецФункции +// Описание категория набора тестов. +// +// Параметры: +// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля +// +// Возвращаемое значение: +// Структура - Описание категория набора тестов: +// * ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля +// * Клиентские - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// * Серверные - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// * Пропущенные - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +Функция ОписаниеКатегорияНабораТестов(ТестовыйМодуль) Экспорт + + КатегорииНаборов = Новый Структура(); + КатегорииНаборов.Вставить("ТестовыйМодуль", ТестовыйМодуль); + КатегорииНаборов.Вставить("Клиентские", Новый Массив()); + КатегорииНаборов.Вставить("Серверные", Новый Массив()); + КатегорииНаборов.Вставить("Пропущенные", Новый Массив()); + + //@skip-check constructor-function-return-section + Возврат КатегорииНаборов; + +КонецФункции + #КонецОбласти #Область КонструкторыКонтекстов diff --git a/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl index 6b1c2284..657da106 100644 --- a/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl @@ -16,10 +16,46 @@ // //©///////////////////////////////////////////////////////////////////////////©// -#Область СлужебныйПрограммныйИнтерфейс - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции +#Область ПрограммныйИнтерфейс + +Функция Существует(ПутьКФайлу, Обработчик = Неопределено) Экспорт + + Файл = Новый Файл(ПутьКФайлу); + +#Если Клиент Тогда + Если Обработчик = Неопределено Тогда + Возврат Файл.Существует(); + Иначе + Файл.НачатьПроверкуСуществования(Обработчик); + КонецЕсли; +#Иначе + Возврат Файл.Существует(); +#КонецЕсли + +КонецФункции + +// Проверяет, что по указанному пути находится каталог +// +// Параметры: +// ПутьКФайлу - Строка +// Обработчик - ОписаниеОповещения +// +// Возвращаемое значение: +// Булево - Это каталог +Функция ЭтоКаталог(ПутьКФайлу, Обработчик = Неопределено) Экспорт + + Файл = Новый Файл(ПутьКФайлу); + +#Если Клиент Тогда + Если Обработчик = Неопределено Тогда + Возврат Файл.ЭтоКаталог(); + Иначе + Файл.НачатьПроверкуЭтоКаталог(Обработчик); + КонецЕсли; +#Иначе + Возврат Файл.ЭтоКаталог(); +#КонецЕсли + +КонецФункции #КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТФайлы/ЮТФайлы.mdo b/exts/yaxunit/src/CommonModules/ЮТФайлы/ЮТФайлы.mdo index 6d6c26c6..0b425cad 100644 --- a/exts/yaxunit/src/CommonModules/ЮТФайлы/ЮТФайлы.mdo +++ b/exts/yaxunit/src/CommonModules/ЮТФайлы/ЮТФайлы.mdo @@ -5,5 +5,7 @@ ru Файлы + true true + true diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 04847f56..84843abc 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -39,8 +39,8 @@ CommonModule.МокитоПроверки CommonModule.МокитоСлужебный CommonModule.ЮТест - CommonModule.ЮТИсполнитель CommonModule.ЮТИсполнительКлиент + CommonModule.ЮТИсполнительКлиентСервер CommonModule.ЮТИсполнительСервер CommonModule.ЮТКоллекции CommonModule.ЮТКонструкторВариантов diff --git a/exts/yaxunit/src/Configuration/OrdinaryApplicationModule.bsl b/exts/yaxunit/src/Configuration/OrdinaryApplicationModule.bsl index 67b918a3..829fe49d 100644 --- a/exts/yaxunit/src/Configuration/OrdinaryApplicationModule.bsl +++ b/exts/yaxunit/src/Configuration/OrdinaryApplicationModule.bsl @@ -35,7 +35,7 @@ &После("ПриНачалеРаботыСистемы") Процедура ЮТПриНачалеРаботыСистемы() - ЮТИсполнитель.ВыполнитьМодульноеТестирование(); + ЮТИсполнительКлиентСервер.ВыполнитьМодульноеТестирование(); КонецПроцедуры diff --git a/exts/yaxunit/src/Subsystems/ЮТДвижок/ЮТДвижок.mdo b/exts/yaxunit/src/Subsystems/ЮТДвижок/ЮТДвижок.mdo index db05a0c6..b60d8df5 100644 --- a/exts/yaxunit/src/Subsystems/ЮТДвижок/ЮТДвижок.mdo +++ b/exts/yaxunit/src/Subsystems/ЮТДвижок/ЮТДвижок.mdo @@ -11,7 +11,7 @@ CommonModule.МокитоПроверки CommonModule.МокитоСлужебный CommonModule.ЮТест - CommonModule.ЮТИсполнитель + CommonModule.ЮТИсполнительКлиентСервер CommonModule.ЮТИсполнительСервер CommonModule.ЮТКонструкторВариантов CommonModule.ЮТКонструкторТестовыхДанных diff --git a/ТестыПример/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl b/ТестыПример/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl index 89fef35a..272d0b29 100644 --- a/ТестыПример/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl +++ b/ТестыПример/src/CommonModules/ОМ_ЮТКонструкторТестовыхДанных/Module.bsl @@ -33,10 +33,10 @@ Процедура ЗаполнитьСправочник() Экспорт -#Если Сервер Тогда - Конструктор = ЮТест.Данные().КонструкторОбъекта(Справочники.Товары); -#Иначе +#Если Клиент Тогда Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары"); +#Иначе + Конструктор = ЮТест.Данные().КонструкторОбъекта(Справочники.Товары); #КонецЕсли Конструктор @@ -53,7 +53,7 @@ .Свойство("Вид").Заполнено(); Ссылка = Конструктор.Записать(); -#Если Сервер Тогда +#Если НЕ Клиент Тогда ЮТест.ОжидаетЧто(Ссылка, "Созданный объект") .Заполнено() .ИмеетТип("СправочникСсылка.Товары") @@ -67,10 +67,10 @@ Процедура ЗаполнитьДокумент() Экспорт -#Если Сервер Тогда - Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПриходТовара); -#Иначе +#Если Клиент Тогда Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара"); +#Иначе + Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПриходТовара); #КонецЕсли Ссылка = Конструктор @@ -91,7 +91,7 @@ .Установить("Сумма", Конструктор.ДанныеСтроки().Цена * Конструктор.ДанныеСтроки().Количество) .Провести(); -#Если Сервер Тогда +#Если НЕ Клиент Тогда ЮТест.ОжидаетЧто(Ссылка, "Созданный объект") .Заполнено() .ИмеетТип("ДокументСсылка.ПриходТовара") From 59f93a97a8a44089d7ad5f1caf4c8fccfe915855 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 7 Apr 2023 16:23:56 +0300 Subject: [PATCH 3/7] =?UTF-8?q?=D0=9D=D0=B0=D1=81=D1=82=D1=80=D0=BE=D0=B9?= =?UTF-8?q?=D0=BA=D0=B0=20=D1=81=D0=BE=D0=BD=D0=B0=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sonar-project.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/sonar-project.properties b/sonar-project.properties index e95fefe0..2b3a6eee 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -12,3 +12,4 @@ sonar.inclusions=**/*.bsl, **/*.os # Encoding of the source code. Default is default system encoding sonar.sourceEncoding=UTF-8 +sonar.bsl.languageserver.configurationPath=.bsl-language-server.json \ No newline at end of file From 9d540436bcd4ea2dedf1c4431164298540c17a64 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Fri, 7 Apr 2023 16:55:42 +0300 Subject: [PATCH 4/7] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=B7=D0=B0=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D1=81=D0=BE=D0=BD=D0=B0=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ЮТИсполнительКлиентСервер/Module.bsl | 2 +- .../yaxunit/src/CommonModules/ЮТФайлы/Module.bsl | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиентСервер/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиентСервер/Module.bsl index 0db8b6ed..fbd5b8b9 100644 --- a/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиентСервер/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиентСервер/Module.bsl @@ -24,7 +24,7 @@ // Выполняет тесты группы наборов, соответствующих одному режиму выполнения (клиент/сервер) // Параметры: -// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов +// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Наборы тестов модуля // ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля // // Возвращаемое значение: diff --git a/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl index 657da106..b04993f8 100644 --- a/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl @@ -16,8 +16,21 @@ // //©///////////////////////////////////////////////////////////////////////////©// +/////////////////////////////////////////////////////////////////// +// Содержит методы по работе с файлами +/////////////////////////////////////////////////////////////////// + #Область ПрограммныйИнтерфейс +// Проверяет существование файла +// +// Параметры: +// ПутьКФайлу - Строка +// Обработчик - ОписаниеОповещения, Неопределено - Обработчик асинхронного получения свойства файла. +// Если обработчик указан, но проверка выполняется асинхронно, иначе - синхронно +// +// Возвращаемое значение: +// Булево - Существует Функция Существует(ПутьКФайлу, Обработчик = Неопределено) Экспорт Файл = Новый Файл(ПутьКФайлу); @@ -38,7 +51,8 @@ // // Параметры: // ПутьКФайлу - Строка -// Обработчик - ОписаниеОповещения +// Обработчик - ОписаниеОповещения, Неопределено - Обработчик асинхронного получения свойства файла. +// Если обработчик указан, но проверка выполняется асинхронно, иначе - синхронно // // Возвращаемое значение: // Булево - Это каталог From 96c61fb2beda581ecfd9a33506d88d577c6d45d0 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sat, 8 Apr 2023 02:19:18 +0300 Subject: [PATCH 5/7] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B4=D1=83=D0=BC?= =?UTF-8?q?=D0=B0=D0=BB=20=D0=B8=20=D1=83=D0=B4=D0=B0=D0=BB=D0=B8=D0=BB=20?= =?UTF-8?q?=D0=AE=D0=A2=D0=9A=D0=BE=D0=BB=D0=BB=D0=B5=D0=BA=D1=86=D0=B8?= =?UTF-8?q?=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/CommonModules/ЮТКоллекции/Module.bsl | 77 ------------------- .../CommonModules/ЮТКоллекции/ЮТКоллекции.mdo | 11 --- .../src/CommonModules/ЮТОбщий/Module.bsl | 40 +++++++++- .../src/CommonModules/ЮТФабрика/Module.bsl | 2 +- .../src/Configuration/Configuration.mdo | 1 - 5 files changed, 37 insertions(+), 94 deletions(-) delete mode 100644 exts/yaxunit/src/CommonModules/ЮТКоллекции/Module.bsl delete mode 100644 exts/yaxunit/src/CommonModules/ЮТКоллекции/ЮТКоллекции.mdo diff --git a/exts/yaxunit/src/CommonModules/ЮТКоллекции/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТКоллекции/Module.bsl deleted file mode 100644 index f16b2fb1..00000000 --- a/exts/yaxunit/src/CommonModules/ЮТКоллекции/Module.bsl +++ /dev/null @@ -1,77 +0,0 @@ -//©///////////////////////////////////////////////////////////////////////////©// -// -// 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. -// -//©///////////////////////////////////////////////////////////////////////////©// - -#Область СлужебныйПрограммныйИнтерфейс - -#Область Универсальные - -// Возвращает соответствие элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. -// -// Параметры: -// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки. -// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия. -// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции. -// Возвращаемое значение: -// Соответствие Из Произвольный - полученное соответствие. -Функция ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт - - Результат = Новый Соответствие(); - - Для Каждого ЭлементКоллекции Из Коллекция Цикл - - Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]); - - Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение); - - КонецЦикла; - - Возврат Результат; - -КонецФункции - -// Возвращает структуру элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. -// -// Параметры: -// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки. -// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия. -// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции. -// Возвращаемое значение: -// Структура Из Произвольный - полученная структура. -Функция ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт - - Результат = Новый Структура(); - - Для Каждого ЭлементКоллекции Из Коллекция Цикл - - Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]); - - Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение); - - КонецЦикла; - - Возврат Результат; - -КонецФункции - -#КонецОбласти - -#КонецОбласти - -#Область СлужебныеПроцедурыИФункции - -#КонецОбласти diff --git a/exts/yaxunit/src/CommonModules/ЮТКоллекции/ЮТКоллекции.mdo b/exts/yaxunit/src/CommonModules/ЮТКоллекции/ЮТКоллекции.mdo deleted file mode 100644 index bcc5e17b..00000000 --- a/exts/yaxunit/src/CommonModules/ЮТКоллекции/ЮТКоллекции.mdo +++ /dev/null @@ -1,11 +0,0 @@ - - - ЮТКоллекции - - ru - Коллекции - - true - true - true - diff --git a/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl index 653813b2..6da2b119 100644 --- a/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТОбщий/Module.bsl @@ -516,7 +516,6 @@ КонецПроцедуры -// КоллекцияВСоответствие // Возвращает соответствие элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. // // Параметры: @@ -525,10 +524,43 @@ // ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции. // Возвращаемое значение: // Соответствие Из Произвольный - полученное соответствие. -Функция КоллекцияВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт +Функция ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт - ВызовУстаревшегоМетода("ЮТОбщий.КоллекцияВСоответствие", "ЮТКоллекции.ВСоответствие"); - Возврат ЮТКоллекции.ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения); + Результат = Новый Соответствие(); + + Для Каждого ЭлементКоллекции Из Коллекция Цикл + + Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]); + + Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение); + + КонецЦикла; + + Возврат Результат; + +КонецФункции + +// Возвращает структуру элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции. +// +// Параметры: +// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки. +// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия. +// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции. +// Возвращаемое значение: +// Структура Из Произвольный - полученная структура. +Функция ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт + + Результат = Новый Структура(); + + Для Каждого ЭлементКоллекции Из Коллекция Цикл + + Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]); + + Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение); + + КонецЦикла; + + Возврат Результат; КонецФункции diff --git a/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl index 02d45120..c5207d1f 100644 --- a/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТФабрика/Module.bsl @@ -155,7 +155,7 @@ ТипыОшибок.Добавить(Новый Структура(Реквизиты, "НекорректныйКонтекстИсполнения", "Некорректный контекст исполнения", Статусы.Пропущен)); ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Пропущен", "Пропущен", Статусы.Пропущен)); - Возврат ЮТКоллекции.ВСтруктуру(ТипыОшибок, "Ключ"); + Возврат ЮТОбщий.ВСтруктуру(ТипыОшибок, "Ключ"); КонецФункции diff --git a/exts/yaxunit/src/Configuration/Configuration.mdo b/exts/yaxunit/src/Configuration/Configuration.mdo index 84843abc..e887ec36 100644 --- a/exts/yaxunit/src/Configuration/Configuration.mdo +++ b/exts/yaxunit/src/Configuration/Configuration.mdo @@ -42,7 +42,6 @@ CommonModule.ЮТИсполнительКлиент CommonModule.ЮТИсполнительКлиентСервер CommonModule.ЮТИсполнительСервер - CommonModule.ЮТКоллекции CommonModule.ЮТКонструкторВариантов CommonModule.ЮТКонструкторТестовыхДанных CommonModule.ЮТКонтекст From aac7645f63aea6593834d28dbf3ff3b09c316882 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Sat, 8 Apr 2023 02:37:03 +0300 Subject: [PATCH 6/7] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B0=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=B8=D1=81=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=8F=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl index 179c6b6a..0e7457e5 100644 --- a/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТИсполнительКлиент/Module.bsl @@ -335,7 +335,7 @@ КонецЦикла; #Если ВебКлиент Тогда - ЮТОбщий.МетодНеДоступен("ЮТИсполнительКлиент.ЗаписатьКодВозврата"); + ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТИсполнительКлиент.ЗаписатьКодВозврата"); #Иначе Запись = Новый ЗаписьТекста(Параметры.exitCode, КодировкаТекста.UTF8); Запись.ЗаписатьСтроку(?(Успешно, 0, 1)); From 2a53cc93510e2024e1b4e608d822390a4bd427e0 Mon Sep 17 00:00:00 2001 From: alkoleft Date: Tue, 11 Apr 2023 00:49:26 +0300 Subject: [PATCH 7/7] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=B7=D0=B0?= =?UTF-8?q?=D0=BC=D0=B5=D1=87=D0=B0=D0=BD=D0=B8=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/CommonModules/ЮТКонтекст/Module.bsl | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/exts/yaxunit/src/CommonModules/ЮТКонтекст/Module.bsl b/exts/yaxunit/src/CommonModules/ЮТКонтекст/Module.bsl index ccc9ddd4..a9ff46f4 100644 --- a/exts/yaxunit/src/CommonModules/ЮТКонтекст/Module.bsl +++ b/exts/yaxunit/src/CommonModules/ЮТКонтекст/Module.bsl @@ -52,7 +52,7 @@ // Возвращает значение вложенного контекста, вложенного реквизита контекста // Параметры: // ИмяРеквизита - Строка - Имя реквизита/вложенного контекста -// +// ПолучитьССервера - Булево - Получить значение из серверного контекста // Возвращаемое значение: // Структура, Неопределено - Значение реквизита/вложенного контекста Функция ЗначениеКонтекста(ИмяРеквизита, ПолучитьССервера = Ложь) Экспорт @@ -69,6 +69,7 @@ Объект = Объект[Ключи[Инд]]; КонецЦикла; + //@skip-check constructor-function-return-section Возврат ЮТОбщий.ЗначениеСтруктуры(Объект, Ключи[Ключи.ВГраница()]); КонецФункции @@ -105,8 +106,8 @@ // Данные живут в рамках одного теста, но доступны в обработчиках событий `ПередКаждымТестом` и `ПослеКаждогоТеста` // Например, в контекст можно помещать создаваемые данные, что бы освободить/удалить их в обработчике `ПослеКаждогоТеста` // Возвращаемое значение: -// Структура - Контекст теста -// Неопределено - Если метод вызывается за рамками теста +// - Структура - Контекст теста +// - Неопределено - Если метод вызывается за рамками теста Функция КонтекстТеста() Экспорт //@skip-check constructor-function-return-section @@ -124,8 +125,8 @@ // + `ПослеКаждогоТеста` // Например, в контекст можно помещать создаваемые данные, что бы освободить/удалить их в обработчике `ПослеКаждогоТеста` // Возвращаемое значение: -// Структура - Контекст набора тестов -// Неопределено - Если метод вызывается за рамками тестового набора +// - Структура - Контекст набора тестов +// - Неопределено - Если метод вызывается за рамками тестового набора Функция КонтекстНабора() Экспорт //@skip-check constructor-function-return-section @@ -139,8 +140,8 @@ // Доступны в каждом тесте модуля и в обработчиках событий // Например, в контекст можно помещать создаваемые данные, что бы освободить/удалить их в обработчике `ПослеВсехТестов` // Возвращаемое значение: -// Структура - Контекст тестового модуля -// Неопределено - Если метод вызывается за рамками тестового модуля +// - Структура - Контекст тестового модуля +// - Неопределено - Если метод вызывается за рамками тестового модуля Функция КонтекстМодуля() Экспорт //@skip-check constructor-function-return-section @@ -165,7 +166,7 @@ // Возвращает служебный контекст, содержит дополнительные детали ошибки теста // // Возвращаемое значение: -// Неопределено, Структура - Контекст ошибки, см. ЮТРегистрацияОшибок.НовыйКонтекстОшибки +// Неопределено, Структура - Контекст ошибки, см. ЮТФабрика.ОписаниеКонтекстаОшибки Функция КонтекстОшибки() Экспорт //@skip-check constructor-function-return-section