mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-01-08 13:06:32 +02:00
Merge pull request #59 from bia-technologies/fearute/45
Работа без использования синхронных методов
This commit is contained in:
commit
1b9c602190
@ -20,51 +20,101 @@
|
||||
// Экспортные процедуры и функции, предназначенные для использования другими
|
||||
// объектами конфигурации или другими программами
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#Область ПрограммныйИнтерфейс
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
#Если Клиент Тогда
|
||||
|
||||
// ВыполнитьМодульноеТестирование
|
||||
// Метод, по параметрам запуска, запускает выполнение всего процесса тестирования.
|
||||
//
|
||||
// Параметры:
|
||||
// Параметры - См. ЮТФабрика.ПараметрыЗапуска
|
||||
Процедура ВыполнитьМодульноеТестирование(Параметры = Неопределено) Экспорт
|
||||
Процедура ВыполнитьМодульноеТестирование() Экспорт
|
||||
|
||||
Если Параметры = Неопределено Тогда
|
||||
Параметры = ЮТПараметрыЗапуска.ПараметрыЗапуска(ПараметрЗапуска);
|
||||
ПараметрыИсполнения = ПараметрыИсполнения();
|
||||
ПараметрыИсполнения.АргументыЗапуска = ПараметрЗапуска;
|
||||
|
||||
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьПараметры");
|
||||
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикАнализПараметровЗапуска");
|
||||
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗагрузитьТесты");
|
||||
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикВыполнитьТестирование");
|
||||
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСохранитьОтчет");
|
||||
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикСохранитьКодВозврата");
|
||||
ДобавитьОбработчикЦепочки(ПараметрыИсполнения, "ОбработчикЗавершить");
|
||||
|
||||
ВызватьСледующийОбработчик(ПараметрыИсполнения);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ВызватьОбработчик(Обработчик, Результат = Неопределено) Экспорт
|
||||
|
||||
Если Обработчик <> Неопределено Тогда
|
||||
ВыполнитьОбработкуОповещения(Обработчик, Результат);
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ Параметры.ВыполнятьМодульноеТестирование Тогда
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#Область ОбработчикиЦепочкиДействий
|
||||
|
||||
Процедура ОбработчикОшибки(ИнформацияОбОшибки, СтандартнаяОбработка, ДополнительныеПараметры) Экспорт
|
||||
|
||||
// TODO Подумать надо ли и как реализовать нормально
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикЗагрузитьПараметры(Результат, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Обработчик = СледующийОбработчик(ДополнительныеПараметры);
|
||||
ЮТПараметрыЗапуска.ПараметрыЗапуска(ДополнительныеПараметры.АргументыЗапуска, Обработчик);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикАнализПараметровЗапуска(ПараметрыЗапуска, ДополнительныеПараметры) Экспорт
|
||||
|
||||
ДополнительныеПараметры.ПараметрыЗапуска = ПараметрыЗапуска;
|
||||
|
||||
Если НЕ ПараметрыЗапуска.ВыполнятьМодульноеТестирование Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ВызватьСледующийОбработчик(ДополнительныеПараметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикЗагрузитьТесты(Результат, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Параметры = ДополнительныеПараметры.ПараметрыЗапуска;
|
||||
|
||||
ЮТКонтекст.ИнициализироватьКонтекст();
|
||||
ЮТКонтекст.УстановитьГлобальныеНастройкиВыполнения(Параметры.settings);
|
||||
ЮТСобытия.Инициализация(Параметры);
|
||||
// Повторно сохраним для передачи на сервер
|
||||
ЮТКонтекст.УстановитьГлобальныеНастройкиВыполнения(ЮТКонтекст.ГлобальныеНастройкиВыполнения());
|
||||
ЮТКонтекст.УстановитьКонтекстИсполнения(ДанныеКонтекстаИсполнения());
|
||||
ЮТКонтекст.УстановитьКонтекстИсполнения(ЮТФабрика.НовыйКонтекстИсполнения());
|
||||
|
||||
ЮТСобытия.ПередЧтениеСценариев();
|
||||
ТестовыеМодули = ЮТЧитатель.ЗагрузитьТесты(Параметры);
|
||||
ЮТСобытия.ПослеЧтенияСценариев(ТестовыеМодули);
|
||||
|
||||
РезультатыТестирования = Новый Массив();
|
||||
|
||||
КоллекцияКатегорийНаборов = Новый Массив();
|
||||
|
||||
Для Каждого ТестовыйМодуль Из ТестовыеМодули Цикл
|
||||
|
||||
КатегорииНаборов = КатегорииНаборовТестовМодуля(ТестовыйМодуль);
|
||||
КоллекцияКатегорийНаборов.Добавить(КатегорииНаборов);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ЮТСобытия.ПослеФормированияИсполняемыхНаборовТестов(КоллекцияКатегорийНаборов);
|
||||
ДополнительныеПараметры.КоллекцияКатегорийНаборов = КоллекцияКатегорийНаборов;
|
||||
|
||||
ВызватьСледующийОбработчик(ДополнительныеПараметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикВыполнитьТестирование(Результат, ДополнительныеПараметры) Экспорт
|
||||
|
||||
РезультатыТестирования = Новый Массив();
|
||||
КоллекцияКатегорийНаборов = ДополнительныеПараметры.КоллекцияКатегорийНаборов;
|
||||
|
||||
Для Каждого КатегорииНаборов Из КоллекцияКатегорийНаборов Цикл
|
||||
|
||||
Результат = ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Клиентские, КатегорииНаборов.ТестовыйМодуль);
|
||||
Результат = ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Клиентские, КатегорииНаборов.ТестовыйМодуль);
|
||||
ЮТОбщий.ДополнитьМассив(РезультатыТестирования, Результат);
|
||||
|
||||
Результат = ЮТИсполнительСервер.ВыполнитьГруппуНаборовТестов(КатегорииНаборов.Серверные, КатегорииНаборов.ТестовыйМодуль);
|
||||
@ -76,131 +126,81 @@
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ЮТОтчет.СформироватьОтчет(РезультатыТестирования, Параметры);
|
||||
ДополнительныеПараметры.РезультатыТестирования = РезультатыТестирования;
|
||||
ВызватьСледующийОбработчик(ДополнительныеПараметры);
|
||||
|
||||
ЗаписатьКодВозврата(РезультатыТестирования, Параметры);
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикСохранитьОтчет(Результат, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если ЗначениеЗаполнено(ДополнительныеПараметры.ПараметрыЗапуска.reportPath) Тогда
|
||||
Обработчик = СледующийОбработчик(ДополнительныеПараметры);
|
||||
ЮТОтчет.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик);
|
||||
Иначе
|
||||
ВызватьСледующийОбработчик(ДополнительныеПараметры);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикСохранитьКодВозврата(Результат, ДополнительныеПараметры) Экспорт
|
||||
|
||||
ЗаписатьКодВозврата(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска);
|
||||
ВызватьСледующийОбработчик(ДополнительныеПараметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикЗавершить(Результат, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Параметры = ДополнительныеПараметры.ПараметрыЗапуска;
|
||||
|
||||
Если Параметры.showReport Тогда
|
||||
ПоказатьОтчет(РезультатыТестирования, Параметры);
|
||||
ПоказатьОтчет(ДополнительныеПараметры.РезультатыТестирования, Параметры);
|
||||
ИначеЕсли Параметры.CloseAfterTests Тогда
|
||||
ПрекратитьРаботуСистемы(Ложь);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции для служебного использования внутри подсистемы
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Выполняет тесты группы наборов, соответствующих одному режиму выполнения (клиент/сервер)
|
||||
// Параметры:
|
||||
// Наборы - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
|
||||
// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов - Результат прогона наборов тестов с заполненной информацией о выполнении
|
||||
Функция ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль) Экспорт
|
||||
Процедура ВызватьСледующийОбработчик(ПараметрыИсполнения, Результат = Неопределено)
|
||||
|
||||
Если Наборы.Количество() = 0 Тогда
|
||||
Возврат Наборы;
|
||||
КонецЕсли;
|
||||
|
||||
Уровни = ЮТФабрика.УровниИсполнения();
|
||||
ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.Модуль;
|
||||
|
||||
ЮТСобытия.ПередВсемиТестамиМодуля(ТестовыйМодуль);
|
||||
|
||||
Если ЕстьОшибки(ТестовыйМодуль) Тогда
|
||||
СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки);
|
||||
Возврат Наборы;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Набор Из Наборы Цикл
|
||||
|
||||
Результат = ВыполнитьНаборТестов(Набор, ТестовыйМодуль);
|
||||
|
||||
Если Результат <> Неопределено Тогда
|
||||
Набор.Тесты = Результат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.Модуль;
|
||||
|
||||
ЮТСобытия.ПослеВсехТестовМодуля(ТестовыйМодуль);
|
||||
|
||||
Если ЕстьОшибки(ТестовыйМодуль) Тогда
|
||||
СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки);
|
||||
КонецЕсли;
|
||||
|
||||
ТестовыйМодуль.Ошибки.Очистить(); // Эти ошибки используются как буфер и уже скопированы в наборы, но ломают последующие наборы
|
||||
|
||||
Возврат Наборы;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции, составляющие внутреннюю реализацию модуля
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ВыполнитьНаборТестов(Набор, ТестовыйМодуль)
|
||||
|
||||
Уровни = ЮТФабрика.УровниИсполнения();
|
||||
ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.НаборТестов;
|
||||
|
||||
Набор.ДатаСтарта = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
ЮТСобытия.ПередТестовымНабором(ТестовыйМодуль, Набор);
|
||||
|
||||
Если ЕстьОшибки(Набор) Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Результаты = Новый Массив();
|
||||
ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.Тест;
|
||||
|
||||
Для Каждого Тест Из Набор.Тесты Цикл
|
||||
|
||||
Тест.ДатаСтарта = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
|
||||
ЮТСобытия.ПередКаждымТестом(ТестовыйМодуль, Набор, Тест);
|
||||
ВыполнитьТестовыйМетод(Тест);
|
||||
ЮТСобытия.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест);
|
||||
|
||||
ОбработатьЗавершениеТеста(Тест);
|
||||
|
||||
Результаты.Добавить(Тест);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.НаборТестов;
|
||||
ЮТСобытия.ПослеТестовогоНабора(ТестовыйМодуль, Набор);
|
||||
|
||||
Набор.Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Набор.ДатаСтарта;
|
||||
|
||||
Возврат Результаты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбработатьЗавершениеТеста(Тест)
|
||||
|
||||
Тест.Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Тест.ДатаСтарта;
|
||||
Тест.Статус = ЮТРегистрацияОшибок.СтатусВыполненияТеста(Тест);
|
||||
Обработчик = СледующийОбработчик(ПараметрыИсполнения);
|
||||
ВыполнитьОбработкуОповещения(Обработчик, Результат);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция СледующийОбработчик(ПараметрыИсполнения)
|
||||
|
||||
ПараметрыИсполнения.ИндексСледующегоОбработчика = ПараметрыИсполнения.ИндексСледующегоОбработчика + 1;
|
||||
Возврат ПараметрыИсполнения.Цепочка[ПараметрыИсполнения.ИндексСледующегоОбработчика];
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ДобавитьОбработчикЦепочки(ПараметрыИсполнения, ИмяМетода)
|
||||
|
||||
Обработчик = Новый ОписаниеОповещения(ИмяМетода, ЭтотОбъект, ПараметрыИсполнения, "ОбработчикОшибки", ЭтотОбъект);
|
||||
ПараметрыИсполнения.Цепочка.Добавить(Обработчик);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ПараметрыИсполнения()
|
||||
|
||||
Параметры = Новый Структура();
|
||||
Параметры.Вставить("АргументыЗапуска");
|
||||
Параметры.Вставить("ПараметрыЗапуска");
|
||||
Параметры.Вставить("Цепочка", Новый Массив());
|
||||
Параметры.Вставить("ИндексСледующегоОбработчика", -1);
|
||||
Параметры.Вставить("КоллекцияКатегорийНаборов");
|
||||
Параметры.Вставить("РезультатыТестирования");
|
||||
|
||||
Возврат Параметры;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция КатегорииНаборовТестовМодуля(ТестовыйМодуль)
|
||||
|
||||
КатегорииНаборов = ОписаниеКатегорияНабораТестов(ТестовыйМодуль);
|
||||
КатегорииНаборов = ЮТФабрика.ОписаниеКатегорияНабораТестов(ТестовыйМодуль);
|
||||
|
||||
ИсполняемыеТестовыеНаборы = Новый Массив;
|
||||
|
||||
@ -290,81 +290,6 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ЕстьОшибки(Объект)
|
||||
|
||||
Возврат ЗначениеЗаполнено(Объект.Ошибки);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ВыполнитьТестовыйМетод(Тест)
|
||||
|
||||
Если ЕстьОшибки(Тест) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
СтатусыИсполненияТеста = ЮТФабрика.СтатусыИсполненияТеста();
|
||||
Тест.Статус = СтатусыИсполненияТеста.Исполнение;
|
||||
|
||||
Ошибка = ЮТОбщий.ВыполнитьМетод(Тест.ПолноеИмяМетода, Тест.Параметры);
|
||||
|
||||
Если Ошибка <> Неопределено Тогда
|
||||
ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СкопироватьОшибкиВ(Объекты, Ошибки)
|
||||
|
||||
Для Каждого Объект Из Объекты Цикл
|
||||
|
||||
ЮТОбщий.ДополнитьМассив(Объект.Ошибки, Ошибки);
|
||||
|
||||
Если Объект.Свойство("Статус") Тогда
|
||||
Объект.Статус = ЮТФабрика.СтатусыИсполненияТеста().Сломан;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Данные контекста исполнения.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Данные контекста исполнения:
|
||||
// * Уровень - Строка
|
||||
Функция ДанныеКонтекстаИсполнения()
|
||||
|
||||
Контекст = Новый Структура();
|
||||
Контекст.Вставить("Уровень", "");
|
||||
|
||||
Возврат Контекст;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Описание категория набора тестов.
|
||||
//
|
||||
// Параметры:
|
||||
// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Описание категория набора тестов:
|
||||
// * ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
|
||||
// * Клиентские - Массив из ЮТФабрика.ОписаниеИсполняемогоНабораТестов
|
||||
// * Серверные - Массив из ЮТФабрика.ОписаниеИсполняемогоНабораТестов
|
||||
// * Пропущенные - Массив из ЮТФабрика.ОписаниеИсполняемогоНабораТестов
|
||||
Функция ОписаниеКатегорияНабораТестов(ТестовыйМодуль)
|
||||
|
||||
КатегорииНаборов = Новый Структура();
|
||||
КатегорииНаборов.Вставить("ТестовыйМодуль", ТестовыйМодуль);
|
||||
КатегорииНаборов.Вставить("Клиентские", Новый Массив());
|
||||
КатегорииНаборов.Вставить("Серверные", Новый Массив());
|
||||
КатегорииНаборов.Вставить("Пропущенные", Новый Массив());
|
||||
|
||||
Возврат КатегорииНаборов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#Если Клиент Тогда
|
||||
Процедура ПоказатьОтчет(РезультатыТестирования, Параметры)
|
||||
|
||||
Данные = Новый Структура("РезультатыТестирования, ПараметрыЗапуска", РезультатыТестирования, Параметры);
|
||||
@ -373,7 +298,6 @@
|
||||
ОткрытьФорму("Обработка.ЮТЮнитТесты.Форма.Основная", Новый Структура("АдресХранилища", АдресДанных));
|
||||
|
||||
КонецПроцедуры
|
||||
#КонецЕсли
|
||||
|
||||
// Записать код возврата.
|
||||
//
|
||||
@ -390,14 +314,14 @@
|
||||
|
||||
Для Каждого Набор Из РезультатыТестирования Цикл
|
||||
|
||||
Если ЕстьОшибки(Набор) Тогда
|
||||
Если ЗначениеЗаполнено(Набор.Ошибки) Тогда
|
||||
Успешно = Ложь;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Тест Из Набор.Тесты Цикл
|
||||
|
||||
Если ЕстьОшибки(Тест) Тогда
|
||||
Если ЗначениеЗаполнено(Тест.Ошибки) Тогда
|
||||
Успешно = Ложь;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
@ -411,7 +335,7 @@
|
||||
КонецЦикла;
|
||||
|
||||
#Если ВебКлиент Тогда
|
||||
ЮТОбщий.МетодНеДоступен("ЮТИсполнитель.ЗаписатьКодВозврата");
|
||||
ВызватьИсключение ЮТОбщий.МетодНеДоступен("ЮТИсполнительКлиент.ЗаписатьКодВозврата");
|
||||
#Иначе
|
||||
Запись = Новый ЗаписьТекста(Параметры.exitCode, КодировкаТекста.UTF8);
|
||||
Запись.ЗаписатьСтроку(?(Успешно, 0, 1));
|
@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c9bf0e7a-6503-44eb-bef0-b37e1d3c6e22">
|
||||
<name>ЮТИсполнительКлиент</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Исполнитель клиент</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -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 Тогда
|
||||
Возврат Наборы;
|
||||
КонецЕсли;
|
||||
|
||||
Уровни = ЮТФабрика.УровниИсполнения();
|
||||
ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.Модуль;
|
||||
|
||||
ЮТСобытия.ПередВсемиТестамиМодуля(ТестовыйМодуль);
|
||||
|
||||
Если ЕстьОшибки(ТестовыйМодуль) Тогда
|
||||
СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки);
|
||||
Возврат Наборы;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Набор Из Наборы Цикл
|
||||
|
||||
Результат = ВыполнитьНаборТестов(Набор, ТестовыйМодуль);
|
||||
|
||||
Если Результат <> Неопределено Тогда
|
||||
Набор.Тесты = Результат;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.Модуль;
|
||||
|
||||
ЮТСобытия.ПослеВсехТестовМодуля(ТестовыйМодуль);
|
||||
|
||||
Если ЕстьОшибки(ТестовыйМодуль) Тогда
|
||||
СкопироватьОшибкиВ(Наборы, ТестовыйМодуль.Ошибки);
|
||||
КонецЕсли;
|
||||
|
||||
ТестовыйМодуль.Ошибки.Очистить(); // Эти ошибки используются как буфер и уже скопированы в наборы, но ломают последующие наборы
|
||||
|
||||
Возврат Наборы;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции, составляющие внутреннюю реализацию модуля
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ВыполнитьНаборТестов(Набор, ТестовыйМодуль)
|
||||
|
||||
Уровни = ЮТФабрика.УровниИсполнения();
|
||||
ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.НаборТестов;
|
||||
|
||||
Набор.ДатаСтарта = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
ЮТСобытия.ПередТестовымНабором(ТестовыйМодуль, Набор);
|
||||
|
||||
Если ЕстьОшибки(Набор) Тогда
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
Результаты = Новый Массив();
|
||||
ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.Тест;
|
||||
|
||||
Для Каждого Тест Из Набор.Тесты Цикл
|
||||
|
||||
Тест.ДатаСтарта = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
|
||||
ЮТСобытия.ПередКаждымТестом(ТестовыйМодуль, Набор, Тест);
|
||||
ВыполнитьТестовыйМетод(Тест);
|
||||
ЮТСобытия.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест);
|
||||
|
||||
ОбработатьЗавершениеТеста(Тест);
|
||||
|
||||
Результаты.Добавить(Тест);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
ЮТКонтекст.КонтекстИсполнения().Уровень = Уровни.НаборТестов;
|
||||
ЮТСобытия.ПослеТестовогоНабора(ТестовыйМодуль, Набор);
|
||||
|
||||
Набор.Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Набор.ДатаСтарта;
|
||||
|
||||
Возврат Результаты;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбработатьЗавершениеТеста(Тест)
|
||||
|
||||
Тест.Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Тест.ДатаСтарта;
|
||||
Тест.Статус = ЮТРегистрацияОшибок.СтатусВыполненияТеста(Тест);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Функция ЕстьОшибки(Объект)
|
||||
|
||||
Возврат ЗначениеЗаполнено(Объект.Ошибки);
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ВыполнитьТестовыйМетод(Тест)
|
||||
|
||||
Если ЕстьОшибки(Тест) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
СтатусыИсполненияТеста = ЮТФабрика.СтатусыИсполненияТеста();
|
||||
Тест.Статус = СтатусыИсполненияТеста.Исполнение;
|
||||
|
||||
Ошибка = ЮТОбщий.ВыполнитьМетод(Тест.ПолноеИмяМетода, Тест.Параметры);
|
||||
|
||||
Если Ошибка <> Неопределено Тогда
|
||||
ЮТРегистрацияОшибок.ЗарегистрироватьОшибкуВыполненияТеста(Тест, Ошибка);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СкопироватьОшибкиВ(Объекты, Ошибки)
|
||||
|
||||
Для Каждого Объект Из Объекты Цикл
|
||||
|
||||
ЮТОбщий.ДополнитьМассив(Объект.Ошибки, Ошибки);
|
||||
|
||||
Если Объект.Свойство("Статус") Тогда
|
||||
Объект.Статус = ЮТФабрика.СтатусыИсполненияТеста().Сломан;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="24d9c1de-23c0-4d03-b2bf-9437c0985453">
|
||||
<name>ЮТИсполнитель</name>
|
||||
<name>ЮТИсполнительКлиентСервер</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Исполнитель</value>
|
@ -16,14 +16,6 @@
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции, предназначенные для использования другими
|
||||
// объектами конфигурации или другими программами
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции для служебного использования внутри подсистемы
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
@ -41,14 +33,8 @@
|
||||
// Массив - Результат прогона наборов тестов, структура набора см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
|
||||
Функция ВыполнитьГруппуНаборовТестов(Знач Наборы, Знач ТестовыйМодуль) Экспорт
|
||||
|
||||
Возврат ЮТИсполнитель.ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль);
|
||||
Возврат ЮТИсполнительКлиентСервер.ВыполнитьГруппуНаборовТестов(Наборы, ТестовыйМодуль);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции, составляющие внутреннюю реализацию модуля
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
#КонецОбласти
|
||||
|
@ -52,7 +52,7 @@
|
||||
// Возвращает значение вложенного контекста, вложенного реквизита контекста
|
||||
// Параметры:
|
||||
// ИмяРеквизита - Строка - Имя реквизита/вложенного контекста
|
||||
//
|
||||
// ПолучитьССервера - Булево - Получить значение из серверного контекста
|
||||
// Возвращаемое значение:
|
||||
// Структура, Неопределено - Значение реквизита/вложенного контекста
|
||||
Функция ЗначениеКонтекста(ИмяРеквизита, ПолучитьССервера = Ложь) Экспорт
|
||||
@ -69,6 +69,7 @@
|
||||
Объект = Объект[Ключи[Инд]];
|
||||
КонецЦикла;
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат ЮТОбщий.ЗначениеСтруктуры(Объект, Ключи[Ключи.ВГраница()]);
|
||||
|
||||
КонецФункции
|
||||
@ -105,10 +106,11 @@
|
||||
// Данные живут в рамках одного теста, но доступны в обработчиках событий `ПередКаждымТестом` и `ПослеКаждогоТеста`
|
||||
// Например, в контекст можно помещать создаваемые данные, что бы освободить/удалить их в обработчике `ПослеКаждогоТеста`
|
||||
// Возвращаемое значение:
|
||||
// Структура - Контекст теста
|
||||
// Неопределено - Если метод вызывается за рамками теста
|
||||
// - Структура - Контекст теста
|
||||
// - Неопределено - Если метод вызывается за рамками теста
|
||||
Функция КонтекстТеста() Экспорт
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат ЗначениеКонтекста(ИмяКонтекстаТеста());
|
||||
|
||||
КонецФункции
|
||||
@ -123,10 +125,11 @@
|
||||
// + `ПослеКаждогоТеста`
|
||||
// Например, в контекст можно помещать создаваемые данные, что бы освободить/удалить их в обработчике `ПослеКаждогоТеста`
|
||||
// Возвращаемое значение:
|
||||
// Структура - Контекст набора тестов
|
||||
// Неопределено - Если метод вызывается за рамками тестового набора
|
||||
// - Структура - Контекст набора тестов
|
||||
// - Неопределено - Если метод вызывается за рамками тестового набора
|
||||
Функция КонтекстНабора() Экспорт
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат ЗначениеКонтекста(ИмяКонтекстаНабораТестов());
|
||||
|
||||
КонецФункции
|
||||
@ -137,10 +140,11 @@
|
||||
// Доступны в каждом тесте модуля и в обработчиках событий
|
||||
// Например, в контекст можно помещать создаваемые данные, что бы освободить/удалить их в обработчике `ПослеВсехТестов`
|
||||
// Возвращаемое значение:
|
||||
// Структура - Контекст тестового модуля
|
||||
// Неопределено - Если метод вызывается за рамками тестового модуля
|
||||
// - Структура - Контекст тестового модуля
|
||||
// - Неопределено - Если метод вызывается за рамками тестового модуля
|
||||
Функция КонтекстМодуля() Экспорт
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат ЗначениеКонтекста(ИмяКонтекстаМодуля());
|
||||
|
||||
КонецФункции
|
||||
@ -162,9 +166,10 @@
|
||||
// Возвращает служебный контекст, содержит дополнительные детали ошибки теста
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Неопределено, Структура - Контекст ошибки, см. ЮТРегистрацияОшибок.НовыйКонтекстОшибки
|
||||
// Неопределено, Структура - Контекст ошибки, см. ЮТФабрика.ОписаниеКонтекстаОшибки
|
||||
Функция КонтекстОшибки() Экспорт
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат ЗначениеКонтекста(ИмяКонтекстаОшибки());
|
||||
|
||||
КонецФункции
|
||||
@ -175,6 +180,7 @@
|
||||
// Неопределено, Структура - Контекст проверки
|
||||
Функция КонтекстПроверки() Экспорт
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат ЗначениеКонтекста(ИмяКонтекстаУтверждений());
|
||||
|
||||
КонецФункции
|
||||
@ -185,6 +191,7 @@
|
||||
// Неопределено, Структура - Контекст проверки
|
||||
Функция КонтекстЧитателя() Экспорт
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат ЗначениеКонтекста(ИмяКонтекстаЧитателя());
|
||||
|
||||
КонецФункции
|
||||
@ -192,9 +199,10 @@
|
||||
// КонтекстЧитателя
|
||||
// Возвращает служебный контекста, данные используемые исполнителем тестов
|
||||
// Возвращаемое значение:
|
||||
// см. ЮТИсполнитель.ДанныеКонтекстаИсполнения
|
||||
// см. ЮТФабрика.НовыйКонтекстИсполнения
|
||||
Функция КонтекстИсполнения() Экспорт
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат ЗначениеКонтекста(ИмяКонтекстаИсполнения());
|
||||
|
||||
КонецФункции
|
||||
|
@ -158,7 +158,7 @@
|
||||
|
||||
// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
|
||||
// Параметры:
|
||||
// КоллекцияКатегорийНаборов - Массив из см. ЮТИсполнитель.ОписаниеКатегорияНабораТестов - Набор исполняемых наборов
|
||||
// КоллекцияКатегорийНаборов - Массив из см. ЮТФабрика.ОписаниеКатегорияНабораТестов - Набор исполняемых наборов
|
||||
Процедура ПослеФормированияИсполняемыхНаборовТестов(КоллекцияКатегорийНаборов) Экспорт
|
||||
|
||||
Количество = 0;
|
||||
|
@ -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.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции, предназначенные для использования другими
|
||||
// объектами конфигурации или другими программами
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция ЗначениеНастройкиТеста(ИмяНастройки, ОписаниеТеста, ОписаниеТестовогоНабора, ЗначениеПоУмолчанию) Экспорт
|
||||
|
||||
Значение = ЗначениеПоУмолчанию;
|
||||
|
||||
Если ОписаниеТеста.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда
|
||||
Значение = ОписаниеТеста.НастройкиВыполнения[ИмяНастройки];
|
||||
ИначеЕсли ОписаниеТестовогоНабора.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда
|
||||
Значение = ОписаниеТестовогоНабора.НастройкиВыполнения[ИмяНастройки];
|
||||
Иначе
|
||||
|
||||
ГлобальныеНастройки = ЮТКонтекст.ГлобальныеНастройкиВыполнения();
|
||||
Если ГлобальныеНастройки.Свойство(ИмяНастройки) Тогда
|
||||
Значение = ГлобальныеНастройки[ИмяНастройки];
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
#КонецОбласти
|
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="a3405948-b02e-4e4b-8195-dd51bf07a4c4">
|
||||
<name>ЮТНастройкиВыполнения</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Параметры</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -516,7 +516,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// КоллекцияВСоответствие
|
||||
// Возвращает соответствие элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции.
|
||||
//
|
||||
// Параметры:
|
||||
@ -525,7 +524,7 @@
|
||||
// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции.
|
||||
// Возвращаемое значение:
|
||||
// Соответствие Из Произвольный - полученное соответствие.
|
||||
Функция КоллекцияВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт
|
||||
Функция ВСоответствие(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт
|
||||
|
||||
Результат = Новый Соответствие();
|
||||
|
||||
@ -541,6 +540,30 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает структуру элементов переданной коллекции, в качестве ключей выступают значения указанного поля элементов коллекции.
|
||||
//
|
||||
// Параметры:
|
||||
// Коллекция - Произвольный - значение, для которого определен итератор, и возможно обращение к полям элементов через квадратные скобки.
|
||||
// ИмяПоляКлюча - Строка - имя поля элемента коллекции, которое будет ключом соответствия.
|
||||
// ИмяПоляЗначения - Строка - если указан, значениями результата будут не элементы, а значения соответствующих полей элементов коллекции.
|
||||
// Возвращаемое значение:
|
||||
// Структура Из Произвольный - полученная структура.
|
||||
Функция ВСтруктуру(Коллекция, ИмяПоляКлюча, ИмяПоляЗначения = Неопределено) Экспорт
|
||||
|
||||
Результат = Новый Структура();
|
||||
|
||||
Для Каждого ЭлементКоллекции Из Коллекция Цикл
|
||||
|
||||
Значение = ?(ИмяПоляЗначения = Неопределено, ЭлементКоллекции, ЭлементКоллекции[ИмяПоляЗначения]);
|
||||
|
||||
Результат.Вставить(ЭлементКоллекции[ИмяПоляКлюча], Значение);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Сравнивает данные сложной структуры с учетом вложенности.
|
||||
//
|
||||
// Параметры:
|
||||
@ -572,7 +595,7 @@
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
Для каждого КлючИЗначение Из Данные1 Цикл
|
||||
Для Каждого КлючИЗначение Из Данные1 Цикл
|
||||
СтароеЗначение = Неопределено;
|
||||
|
||||
Если НЕ Данные2.Свойство(КлючИЗначение.Ключ, СтароеЗначение)
|
||||
@ -593,7 +616,7 @@
|
||||
|
||||
КлючиНовогоСоответствия = Новый Соответствие;
|
||||
|
||||
Для каждого КлючИЗначение Из Данные1 Цикл
|
||||
Для Каждого КлючИЗначение Из Данные1 Цикл
|
||||
КлючиНовогоСоответствия.Вставить(КлючИЗначение.Ключ, Истина);
|
||||
СтароеЗначение = Данные2.Получить(КлючИЗначение.Ключ);
|
||||
|
||||
@ -602,7 +625,7 @@
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Для каждого КлючИЗначение Из Данные2 Цикл
|
||||
Для Каждого КлючИЗначение Из Данные2 Цикл
|
||||
Если КлючиНовогоСоответствия[КлючИЗначение.Ключ] = Неопределено Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
@ -736,8 +759,8 @@
|
||||
// Булево - Это каталог
|
||||
Функция ЭтоКаталог(ПутьКФайлу) Экспорт
|
||||
|
||||
Файл = Новый Файл(ПутьКФайлу);
|
||||
Возврат Файл.Существует() И Файл.ЭтоКаталог();
|
||||
ВызовУстаревшегоМетода("ЮТОбщий.ЭтоКаталог", "ЮТФайлы.ЭтоКаталог");
|
||||
Возврат ЮТФайлы.Существует(ПутьКФайлу) И ЮТФайлы.ЭтоКаталог(ПутьКФайлу);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@ -20,86 +20,94 @@
|
||||
// Экспортные процедуры и функции, предназначенные для использования другими
|
||||
// объектами конфигурации или другими программами
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#Область ПрограммныйИнтерфейс
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// СформироватьОтчет
|
||||
// Формирует отчет о результатах тестирования по заданным параметрам
|
||||
// Параметры:
|
||||
// РезультатВыполнения - Массив - Коллекция результатов выполнения, каждый элемент - структура, см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
|
||||
// ПараметрыЗапуска - Структура - Параметры запуска, см. ЮТФабрика.ПараметрыЗапуска
|
||||
Процедура СформироватьОтчет(РезультатВыполнения, ПараметрыЗапуска) Экспорт
|
||||
// Обработчик - ОписаниеОповещения
|
||||
Процедура СформироватьОтчет(РезультатВыполнения, ПараметрыЗапуска, Обработчик) Экспорт
|
||||
|
||||
Модули = ЮТРасширения.ГенераторыОтчетов();
|
||||
МодульОтчета = Неопределено;
|
||||
Если НЕ ЗначениеЗаполнено(ПараметрыЗапуска.reportPath) Тогда
|
||||
ВызватьИсключение "Не указан путь сохранения отчета";
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Модуль Из Модули Цикл
|
||||
|
||||
Если Модуль.РеализуетФормат(ПараметрыЗапуска.reportFormat) Тогда
|
||||
МодульОтчета = Модуль;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
МодульОтчета = МодульФормирования(ПараметрыЗапуска.reportFormat);
|
||||
|
||||
Если МодульОтчета = Неопределено Тогда
|
||||
|
||||
ВызватьИсключение СтрШаблон("Отчет в формате %1 не поддерживается", ПараметрыЗапуска.reportFormat);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
ИмяФайлаОтчета = ИмяФайлаОтчета(Модуль, ПараметрыЗапуска);
|
||||
ДанныеОтчета = Модуль.ДанныеОтчета(РезультатВыполнения);
|
||||
ПараметрыФормирования = Новый Структура("РезультатВыполнения, ПараметрыЗапуска, Обработчик", РезультатВыполнения, ПараметрыЗапуска, Обработчик);
|
||||
ПараметрыФормирования.Вставить("МодульОтчета", МодульОтчета);
|
||||
|
||||
Если ДанныеОтчета = Неопределено Тогда
|
||||
|
||||
ВызватьИсключение "Не удалось получить данные отчета";
|
||||
|
||||
ИначеЕсли НЕ ЗначениеЗаполнено(ИмяФайлаОтчета) Тогда
|
||||
|
||||
ВызватьИсключение "Не удалось сформировать имя файла отчета";
|
||||
|
||||
Иначе
|
||||
|
||||
ДанныеОтчета.Записать(ИмяФайлаОтчета);
|
||||
|
||||
КонецЕсли;
|
||||
ОбработчикПолученияИмениФайла = Новый ОписаниеОповещения("ПослеФормированияИмениФайла", ЭтотОбъект, ПараметрыФормирования);
|
||||
ИмяФайлаОтчета(ПараметрыФормирования, ОбработчикПолученияИмениФайла);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции для служебного использования внутри подсистемы
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции, составляющие внутреннюю реализацию модуля
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
Функция ИмяФайлаОтчета(Модуль, ПараметрыЗапуска)
|
||||
Процедура ИмяФайлаОтчета(ПараметрыФормирования, Обработчик)
|
||||
|
||||
ИмяФайла = Неопределено;
|
||||
ПараметрыПроверки = Новый Структура("ПараметрыФормирования, Обработчик", ПараметрыФормирования, Обработчик);
|
||||
|
||||
ПутьКОтчету = ПараметрыЗапуска.reportPath;
|
||||
ОбработчикПроверки = Новый ОписаниеОповещения("ПослеПроверкиКаталога", ЭтотОбъект, ПараметрыПроверки);
|
||||
ЮТФайлы.ЭтоКаталог(ПараметрыФормирования.ПараметрыЗапуска.reportPath, ОбработчикПроверки);
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(ПутьКОтчету) Тогда
|
||||
ВызватьИсключение "Не указан путь сохранения отчета";
|
||||
КонецПроцедуры
|
||||
|
||||
Функция МодульФормирования(Формат)
|
||||
|
||||
Модули = ЮТРасширения.ГенераторыОтчетов();
|
||||
МодульОтчета = Неопределено;
|
||||
|
||||
Для Каждого Модуль Из Модули Цикл
|
||||
|
||||
Если Модуль.РеализуетФормат(Формат) Тогда
|
||||
МодульОтчета = Модуль;
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат МодульОтчета;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ПослеФормированияИмениФайла(ИмяФайлаОтчета, Параметры) Экспорт
|
||||
|
||||
ДанныеОтчета = Параметры.МодульОтчета.ДанныеОтчета(Параметры.РезультатВыполнения);
|
||||
|
||||
Если ДанныеОтчета = Неопределено Тогда
|
||||
ВызватьИсключение "Не удалось получить данные отчета";
|
||||
Иначе
|
||||
ДанныеОтчета.Записать(ИмяФайлаОтчета);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЮТОбщий.ЭтоКаталог(ПутьКОтчету) Тогда
|
||||
ИмяФайла = ЮТОбщий.ОбъединитьПути(ПутьКОтчету, Модуль.ИмяФайлаПоУмолчанию());
|
||||
ЮТИсполнительКлиент.ВызватьОбработчик(Параметры.Обработчик);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеПроверкиКаталога(ЭтоКаталог, Параметры) Экспорт
|
||||
|
||||
ПутьКОтчету = Параметры.ПараметрыФормирования.ПараметрыЗапуска.reportPath;
|
||||
Если ЭтоКаталог Тогда
|
||||
ИмяФайла = ЮТОбщий.ОбъединитьПути(ПутьКОтчету, Параметры.ПараметрыФормирования.МодульОтчета.ИмяФайлаПоУмолчанию());
|
||||
Иначе
|
||||
ИмяФайла = ПутьКОтчету;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ИмяФайла;
|
||||
ЮТИсполнительКлиент.ВызватьОбработчик(Параметры.Обработчик, ИмяФайла);
|
||||
|
||||
КонецФункции
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -16,24 +16,21 @@
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции, предназначенные для использования другими
|
||||
// объектами конфигурации или другими программами
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
#Область ПрограммныйИнтерфейс
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// ПараметрыЗапуска
|
||||
// Возвращает загруженные параметры запуска тестирования
|
||||
// Параметры:
|
||||
// ПараметрыЗапускаСтрокой - Строка - Параметры запуска приложения
|
||||
// Обработчик - ОписаниеОповещения
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. ЮТФабрика.ПараметрыЗапуска
|
||||
Функция ПараметрыЗапуска(Знач ПараметрыЗапускаСтрокой) Экспорт
|
||||
Функция ПараметрыЗапуска(Знач ПараметрыЗапускаСтрокой, Обработчик) Экспорт
|
||||
|
||||
Попытка
|
||||
|
||||
Параметры = ПрочитатьПараметрыЗапуска(ПараметрыЗапускаСтрокой);
|
||||
Параметры = ПрочитатьПараметрыЗапуска(ПараметрыЗапускаСтрокой, Обработчик);
|
||||
|
||||
Исключение
|
||||
|
||||
@ -54,55 +51,25 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Экспортные процедуры и функции для служебного использования внутри подсистемы
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
Функция ЗначениеНастройкиТеста(ИмяНастройки, ОписаниеТеста, ОписаниеТестовогоНабора, ЗначениеПоУмолчанию) Экспорт
|
||||
|
||||
Значение = ЗначениеПоУмолчанию;
|
||||
|
||||
Если ОписаниеТеста.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда
|
||||
Значение = ОписаниеТеста.НастройкиВыполнения[ИмяНастройки];
|
||||
ИначеЕсли ОписаниеТестовогоНабора.НастройкиВыполнения.Свойство(ИмяНастройки) Тогда
|
||||
Значение = ОписаниеТестовогоНабора.НастройкиВыполнения[ИмяНастройки];
|
||||
Иначе
|
||||
|
||||
ГлобальныеНастройки = ЮТКонтекст.ГлобальныеНастройкиВыполнения();
|
||||
Если ГлобальныеНастройки.Свойство(ИмяНастройки) Тогда
|
||||
Значение = ГлобальныеНастройки[ИмяНастройки];
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Значение;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// Процедуры и функции, составляющие внутреннюю реализацию модуля
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// ПрочитатьПараметрыЗапуска
|
||||
// Читает параметры из строки запуска
|
||||
// Параметры:
|
||||
// ПараметрыЗапускаСтрокой - Строка - Строка с параметрами запуска.
|
||||
// Содержит ключ запуска и строку с конфигурационным файлом.
|
||||
// Формат строки "RunUnitTests=/путь/к/конфигурационному/файлу", где ключ указывается обязательно, а путь - по желанию
|
||||
// Содержит ключ запуска и строку с конфигурационным файлом.
|
||||
// Формат строки "RunUnitTests=/путь/к/конфигурационному/файлу",
|
||||
// где ключ указывается обязательно, а путь - по желанию
|
||||
// Обработчик - ОписаниеОповещения
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// см. ЮТФабрика.ПараметрыЗапуска
|
||||
Функция ПрочитатьПараметрыЗапуска(Знач ПараметрыЗапускаСтрокой)
|
||||
Функция ПрочитатьПараметрыЗапуска(Знач ПараметрыЗапускаСтрокой, Обработчик)
|
||||
|
||||
Параметры = ЮТФабрика.ПараметрыЗапуска();
|
||||
|
||||
Если Не ЗначениеЗаполнено(ПараметрыЗапускаСтрокой) Тогда
|
||||
ЮТИсполнительКлиент.ВызватьОбработчик(Обработчик, Параметры);
|
||||
Возврат Параметры;
|
||||
КонецЕсли;
|
||||
|
||||
@ -139,11 +106,12 @@
|
||||
Если ЗначениеЗаполнено(КонфигурационныйФайл) Тогда
|
||||
|
||||
ПараметрыИзФайла = ПрочитатьКонфигурационныйФайл(КонфигурационныйФайл);
|
||||
|
||||
ДополнитьПараметрыПрочитанными(Параметры, ПараметрыИзФайла);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
|
||||
ЮТИсполнительКлиент.ВызватьОбработчик(Обработчик, Параметры);
|
||||
|
||||
Возврат Параметры;
|
||||
|
||||
КонецФункции
|
||||
|
@ -7,6 +7,5 @@
|
||||
</synonym>
|
||||
<comment>Используется для обработки и дополнения параметров запуска тестов</comment>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
||||
|
@ -186,7 +186,7 @@
|
||||
|
||||
// Обработка события "ПослеФормированияИсполняемыхНаборовТестов"
|
||||
// Параметры:
|
||||
// КоллекцияКатегорийНаборов - Массив из см. ЮТИсполнитель.ОписаниеКатегорияНабораТестов - Набор исполняемых наборов
|
||||
// КоллекцияКатегорийНаборов - Массив из см. ЮТФабрика.ОписаниеКатегорияНабораТестов - Набор исполняемых наборов
|
||||
Процедура ПослеФормированияИсполняемыхНаборовТестов(КоллекцияКатегорийНаборов) Экспорт
|
||||
|
||||
Параметры = ЮТОбщий.ЗначениеВМассиве(КоллекцияКатегорийНаборов);
|
||||
@ -271,7 +271,7 @@
|
||||
|
||||
ИмяПараметра = ЮТФабрика.ПараметрыИсполненияТеста().ВТранзакции;
|
||||
|
||||
Возврат ЮТПараметрыЗапуска.ЗначениеНастройкиТеста(ИмяПараметра, ОписаниеСобытия.Тест, ОписаниеСобытия.Набор, Ложь);
|
||||
Возврат ЮТНастройкиВыполнения.ЗначениеНастройкиТеста(ИмяПараметра, ОписаниеСобытия.Тест, ОписаниеСобытия.Набор, Ложь);
|
||||
|
||||
КонецФункции
|
||||
|
||||
|
@ -82,7 +82,14 @@
|
||||
// СтатусыИсполненияТеста
|
||||
// Возвращает перечисление возможных статусов выполнения теста, жизненный цикл теста
|
||||
// Возвращаемое значение:
|
||||
// ФиксированнаяСтруктура - Статусы исполнения теста
|
||||
// ФиксированнаяСтруктура - Статусы исполнения теста:
|
||||
// * Ожидание- Строка - Тест не выполнялся
|
||||
// * Исполнение- Строка - Тест выполняется в данный момент
|
||||
// * Успешно- Строка - Тест успешно пройден
|
||||
// * Ошибка- Строка - Тест упал с ошибкой выполнения
|
||||
// * Сломан- Строка - Тест упал на проверках утверждений
|
||||
// * Пропущен- Строка - Тест пропущен по каким либо причинам
|
||||
// * НеРеализован- Строка - Тест не реализован
|
||||
Функция СтатусыИсполненияТеста() Экспорт
|
||||
|
||||
Статусы = Новый Структура();
|
||||
@ -102,7 +109,7 @@
|
||||
// Типы ошибок.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ФиксированнаяСтруктура
|
||||
// ФиксированнаяСтруктура - Типы возможных ошибок:
|
||||
// * ТестНеРеализован - Строка
|
||||
// * ОшибкаСравнения - Строка
|
||||
// * ОшибкаОбработкиСобытия - Строка
|
||||
@ -121,6 +128,7 @@
|
||||
Типы.Вставить(ТипОшибки.Ключ, ТипОшибки.Ключ);
|
||||
КонецЦикла;
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат Новый ФиксированнаяСтруктура(Типы);
|
||||
|
||||
КонецФункции
|
||||
@ -131,20 +139,23 @@
|
||||
ЮТПовторногоИспользования.ПараметрыТиповОшибок();
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ЮТТестовыеДанные.СтруктураMarkDown("Ключ",
|
||||
"| Ключ | Представление | Статус |
|
||||
||--------------------------------|----------------------------------|--------------|
|
||||
|| ТестНеРеализован | Не реализован | НеРеализован |
|
||||
|| ОшибкаСравнения | Ошибка сравнения | Ошибка |
|
||||
|| ОшибкаОбработкиСобытия | Ошибка обработки события | Сломан |
|
||||
|| Утверждений | Ошибка утверждений | Ошибка |
|
||||
|| Исполнения | Ошибка исполнения | Сломан |
|
||||
|| ЧтенияТестов | Загрузки тестов | Сломан |
|
||||
|| МалоПараметров | Мало фактических параметров | Сломан |
|
||||
|| МногоПараметров | Много фактических параметров | Сломан |
|
||||
|| НекорректныйКонтекстИсполнения | Некорректный контекст исполнения | Пропущен |
|
||||
|| Пропущен | Пропущен | Пропущен |
|
||||
|");
|
||||
Статусы = СтатусыИсполненияТеста();
|
||||
Реквизиты = "Ключ, Представление, Статус";
|
||||
|
||||
ТипыОшибок = Новый Массив();
|
||||
ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ТестНеРеализован", "Не реализован", Статусы.НеРеализован));
|
||||
ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ТестНеРеализован", "Не реализован", Статусы.НеРеализован));
|
||||
ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ОшибкаСравнения", "Ошибка сравнения", Статусы.Ошибка));
|
||||
ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ОшибкаОбработкиСобытия", "Ошибка обработки события", Статусы.Сломан));
|
||||
ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Утверждений", "Ошибка утверждений", Статусы.Ошибка));
|
||||
ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Исполнения", "Ошибка исполнения", Статусы.Сломан));
|
||||
ТипыОшибок.Добавить(Новый Структура(Реквизиты, "ЧтенияТестов", "Загрузки тестов", Статусы.Сломан));
|
||||
ТипыОшибок.Добавить(Новый Структура(Реквизиты, "МалоПараметров", "Мало фактических параметров", Статусы.Сломан));
|
||||
ТипыОшибок.Добавить(Новый Структура(Реквизиты, "МногоПараметров", "Много фактических параметров", Статусы.Сломан));
|
||||
ТипыОшибок.Добавить(Новый Структура(Реквизиты, "НекорректныйКонтекстИсполнения", "Некорректный контекст исполнения", Статусы.Пропущен));
|
||||
ТипыОшибок.Добавить(Новый Структура(Реквизиты, "Пропущен", "Пропущен", Статусы.Пропущен));
|
||||
|
||||
Возврат ЮТОбщий.ВСтруктуру(ТипыОшибок, "Ключ");
|
||||
|
||||
КонецФункции
|
||||
|
||||
@ -492,6 +503,48 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Описание категория набора тестов.
|
||||
//
|
||||
// Параметры:
|
||||
// ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Описание категория набора тестов:
|
||||
// * ТестовыйМодуль - см. ЮТФабрика.ОписаниеТестовогоМодуля
|
||||
// * Клиентские - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
|
||||
// * Серверные - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
|
||||
// * Пропущенные - Массив из см. ЮТФабрика.ОписаниеИсполняемогоНабораТестов
|
||||
Функция ОписаниеКатегорияНабораТестов(ТестовыйМодуль) Экспорт
|
||||
|
||||
КатегорииНаборов = Новый Структура();
|
||||
КатегорииНаборов.Вставить("ТестовыйМодуль", ТестовыйМодуль);
|
||||
КатегорииНаборов.Вставить("Клиентские", Новый Массив());
|
||||
КатегорииНаборов.Вставить("Серверные", Новый Массив());
|
||||
КатегорииНаборов.Вставить("Пропущенные", Новый Массив());
|
||||
|
||||
//@skip-check constructor-function-return-section
|
||||
Возврат КатегорииНаборов;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область КонструкторыКонтекстов
|
||||
|
||||
// Данные контекста исполнения.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Данные контекста исполнения:
|
||||
// * Уровень - Строка
|
||||
Функция НовыйКонтекстИсполнения() Экспорт
|
||||
|
||||
Контекст = Новый Структура();
|
||||
Контекст.Вставить("Уровень", "");
|
||||
|
||||
Возврат Контекст;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// КонтекстыМодуля
|
||||
|
75
exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl
Normal file
75
exts/yaxunit/src/CommonModules/ЮТФайлы/Module.bsl
Normal file
@ -0,0 +1,75 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
//
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
|
||||
///////////////////////////////////////////////////////////////////
|
||||
// Содержит методы по работе с файлами
|
||||
///////////////////////////////////////////////////////////////////
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Проверяет существование файла
|
||||
//
|
||||
// Параметры:
|
||||
// ПутьКФайлу - Строка
|
||||
// Обработчик - ОписаниеОповещения, Неопределено - Обработчик асинхронного получения свойства файла.
|
||||
// Если обработчик указан, но проверка выполняется асинхронно, иначе - синхронно
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Существует
|
||||
Функция Существует(ПутьКФайлу, Обработчик = Неопределено) Экспорт
|
||||
|
||||
Файл = Новый Файл(ПутьКФайлу);
|
||||
|
||||
#Если Клиент Тогда
|
||||
Если Обработчик = Неопределено Тогда
|
||||
Возврат Файл.Существует();
|
||||
Иначе
|
||||
Файл.НачатьПроверкуСуществования(Обработчик);
|
||||
КонецЕсли;
|
||||
#Иначе
|
||||
Возврат Файл.Существует();
|
||||
#КонецЕсли
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Проверяет, что по указанному пути находится каталог
|
||||
//
|
||||
// Параметры:
|
||||
// ПутьКФайлу - Строка
|
||||
// Обработчик - ОписаниеОповещения, Неопределено - Обработчик асинхронного получения свойства файла.
|
||||
// Если обработчик указан, но проверка выполняется асинхронно, иначе - синхронно
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Это каталог
|
||||
Функция ЭтоКаталог(ПутьКФайлу, Обработчик = Неопределено) Экспорт
|
||||
|
||||
Файл = Новый Файл(ПутьКФайлу);
|
||||
|
||||
#Если Клиент Тогда
|
||||
Если Обработчик = Неопределено Тогда
|
||||
Возврат Файл.ЭтоКаталог();
|
||||
Иначе
|
||||
Файл.НачатьПроверкуЭтоКаталог(Обработчик);
|
||||
КонецЕсли;
|
||||
#Иначе
|
||||
Возврат Файл.ЭтоКаталог();
|
||||
#КонецЕсли
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
11
exts/yaxunit/src/CommonModules/ЮТФайлы/ЮТФайлы.mdo
Normal file
11
exts/yaxunit/src/CommonModules/ЮТФайлы/ЮТФайлы.mdo
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="2874e686-3785-4050-994a-bf457fa32700">
|
||||
<name>ЮТФайлы</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Файлы</value>
|
||||
</synonym>
|
||||
<clientManagedApplication>true</clientManagedApplication>
|
||||
<server>true</server>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
@ -39,7 +39,8 @@
|
||||
<commonModules>CommonModule.МокитоПроверки</commonModules>
|
||||
<commonModules>CommonModule.МокитоСлужебный</commonModules>
|
||||
<commonModules>CommonModule.ЮТест</commonModules>
|
||||
<commonModules>CommonModule.ЮТИсполнитель</commonModules>
|
||||
<commonModules>CommonModule.ЮТИсполнительКлиент</commonModules>
|
||||
<commonModules>CommonModule.ЮТИсполнительКлиентСервер</commonModules>
|
||||
<commonModules>CommonModule.ЮТИсполнительСервер</commonModules>
|
||||
<commonModules>CommonModule.ЮТКонструкторВариантов</commonModules>
|
||||
<commonModules>CommonModule.ЮТКонструкторТестовыхДанных</commonModules>
|
||||
@ -52,6 +53,7 @@
|
||||
<commonModules>CommonModule.ЮТМетаданные</commonModules>
|
||||
<commonModules>CommonModule.ЮТМетаданныеПовтИсп</commonModules>
|
||||
<commonModules>CommonModule.ЮТМетаданныеСервер</commonModules>
|
||||
<commonModules>CommonModule.ЮТНастройкиВыполнения</commonModules>
|
||||
<commonModules>CommonModule.ЮТОбщий</commonModules>
|
||||
<commonModules>CommonModule.ЮТОбщийВызовСервера</commonModules>
|
||||
<commonModules>CommonModule.ЮТОтчет</commonModules>
|
||||
@ -68,6 +70,7 @@
|
||||
<commonModules>CommonModule.ЮТТесты</commonModules>
|
||||
<commonModules>CommonModule.ЮТУтверждения</commonModules>
|
||||
<commonModules>CommonModule.ЮТФабрика</commonModules>
|
||||
<commonModules>CommonModule.ЮТФайлы</commonModules>
|
||||
<commonModules>CommonModule.ЮТФильтрация</commonModules>
|
||||
<commonModules>CommonModule.ЮТЧитатель</commonModules>
|
||||
<commonModules>CommonModule.ЮТЧитательСервер</commonModules>
|
||||
|
@ -35,7 +35,7 @@
|
||||
&После("ПриНачалеРаботыСистемы")
|
||||
Процедура ЮТПриНачалеРаботыСистемы()
|
||||
|
||||
ЮТИсполнитель.ВыполнитьМодульноеТестирование();
|
||||
ЮТИсполнительКлиент.ВыполнитьМодульноеТестирование();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@ -35,7 +35,7 @@
|
||||
&После("ПриНачалеРаботыСистемы")
|
||||
Процедура ЮТПриНачалеРаботыСистемы()
|
||||
|
||||
ЮТИсполнитель.ВыполнитьМодульноеТестирование();
|
||||
ЮТИсполнительКлиентСервер.ВыполнитьМодульноеТестирование();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@ -11,7 +11,7 @@
|
||||
<content>CommonModule.МокитоПроверки</content>
|
||||
<content>CommonModule.МокитоСлужебный</content>
|
||||
<content>CommonModule.ЮТест</content>
|
||||
<content>CommonModule.ЮТИсполнитель</content>
|
||||
<content>CommonModule.ЮТИсполнительКлиентСервер</content>
|
||||
<content>CommonModule.ЮТИсполнительСервер</content>
|
||||
<content>CommonModule.ЮТКонструкторВариантов</content>
|
||||
<content>CommonModule.ЮТКонструкторТестовыхДанных</content>
|
||||
|
@ -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
|
@ -29,10 +29,10 @@
|
||||
|
||||
Процедура ЗаполнитьСправочник() Экспорт
|
||||
|
||||
#Если Сервер Тогда
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта(Справочники.Товары);
|
||||
#Иначе
|
||||
#Если Клиент Тогда
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта("Справочники.Товары");
|
||||
#Иначе
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта(Справочники.Товары);
|
||||
#КонецЕсли
|
||||
|
||||
Конструктор
|
||||
@ -49,7 +49,7 @@
|
||||
.Свойство("Вид").Заполнено();
|
||||
|
||||
Ссылка = Конструктор.Записать();
|
||||
#Если Сервер Тогда
|
||||
#Если НЕ Клиент Тогда
|
||||
ЮТест.ОжидаетЧто(Ссылка, "Созданный объект")
|
||||
.Заполнено()
|
||||
.ИмеетТип("СправочникСсылка.Товары")
|
||||
@ -63,10 +63,10 @@
|
||||
|
||||
Процедура ЗаполнитьДокумент() Экспорт
|
||||
|
||||
#Если Сервер Тогда
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПриходТовара);
|
||||
#Иначе
|
||||
#Если Клиент Тогда
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта("Документы.ПриходТовара");
|
||||
#Иначе
|
||||
Конструктор = ЮТест.Данные().КонструкторОбъекта(Документы.ПриходТовара);
|
||||
#КонецЕсли
|
||||
|
||||
Ссылка = Конструктор
|
||||
@ -87,7 +87,7 @@
|
||||
.Установить("Сумма", Конструктор.ДанныеСтроки().Цена * Конструктор.ДанныеСтроки().Количество)
|
||||
.Провести();
|
||||
|
||||
#Если Сервер Тогда
|
||||
#Если НЕ Клиент Тогда
|
||||
ЮТест.ОжидаетЧто(Ссылка, "Созданный объект")
|
||||
.Заполнено()
|
||||
.ИмеетТип("ДокументСсылка.ПриходТовара")
|
||||
|
@ -117,7 +117,7 @@
|
||||
.Элемент(1).ИмеетТип("Структура")
|
||||
.Элемент(2).ИмеетТип("Структура")
|
||||
;
|
||||
|
||||
|
||||
НаборПоУмолчанию = Сценарии[0];
|
||||
НаборЭтоТестовыйМодуль = Сценарии[1];
|
||||
НаборЗагрузкаТестов = Сценарии[2];
|
||||
|
Loading…
Reference in New Issue
Block a user