mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2024-11-24 08:22:22 +02:00
#322 Новая зависимость - ФабрикаXDTO
This commit is contained in:
parent
b3bbf387e0
commit
678067ff2c
@ -22,7 +22,7 @@
|
||||
// Гарантирует доступность файлов как на клиенте, так и на сервере.
|
||||
//
|
||||
// Параметры:
|
||||
// ПутьКФайлам - Строка - Относетельный путь к файлу проекта (относительно настройки projectPath)
|
||||
// ПутьКФайлам - Строка - Относительный путь к файлу проекта (относительно настройки projectPath)
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// CommonModule.ЮТТесты - Файлы проекта
|
||||
@ -38,4 +38,27 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Указывает зависимость теста (набора или модуля) от фабрики XDTO, создаваемой на основании файлов.
|
||||
// Создает и кэширует фабрику, предоставляя к доступ из любого серверного теста
|
||||
//
|
||||
// Параметры:
|
||||
// ПутьКФайлам - Строка - Относительный путь к файлу проекта (относительно настройки projectPath)
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// CommonModule.ЮТТесты - Файлы проекта
|
||||
Функция ФабрикаXDTO(ПутьКФайлам) Экспорт
|
||||
|
||||
ФайлыПроекта(ПутьКФайлам);
|
||||
|
||||
ОписаниеЗависимости = ЮТФабрика.НовоеОписаниеЗависимости();
|
||||
ОписаниеЗависимости.Идентификатор = "ФабрикаXDTO";
|
||||
ОписаниеЗависимости.МетодРеализации = "ЮТРазрешениеЗависимостейСлужебныйВызовСервера.ФабрикаXDTO";
|
||||
ОписаниеЗависимости.Параметры.Добавить(ПутьКФайлам);
|
||||
ОписаниеЗависимости.ОбработкаНаСервере = Истина;
|
||||
ОписаниеЗависимости.ДоступностьНаКлиенте = Ложь;
|
||||
|
||||
Возврат ЮТЗависимостиСлужебный.ДобавитьЗависимостьПриРегистрации(ОписаниеЗависимости);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -25,10 +25,27 @@
|
||||
Результаты = ЮТКонтекстСлужебный.ЗначениеКонтекста(ИмяКонтекстаДанныеЗависимостей());
|
||||
ДанныеЗависимости = Результаты[КлючЗависимости];
|
||||
|
||||
Если ДанныеЗависимости = Неопределено И НЕ ЗависимостьРазрешена(КлючЗависимости) Тогда
|
||||
ВызватьИсключение СтрШаблон("Не указана или не разрешена зависимость `%1`", ПредставлениеЗависимости(ОписаниеЗависимости));
|
||||
Если ДанныеЗависимости <> Неопределено Тогда
|
||||
Возврат ДанныеЗависимости;
|
||||
КонецЕсли;
|
||||
|
||||
РезультатРазрешения = РезультатРазрешенияЗависимости(КлючЗависимости);
|
||||
ПредставлениеЗависимости = ПредставлениеЗависимости(ОписаниеЗависимости);
|
||||
|
||||
Если РезультатРазрешения = Неопределено Или НЕ РезультатРазрешения.Успешно Тогда
|
||||
ВызватьИсключение СтрШаблон("Не указана или не разрешена зависимость `%1`", ПредставлениеЗависимости);
|
||||
КонецЕсли;
|
||||
|
||||
#Если Сервер Тогда
|
||||
Если НЕ РезультатРазрешения.ДоступностьНаСервере Тогда
|
||||
ВызватьИсключение СтрШаблон("Зависимость `%1` недоступна на сервере", ПредставлениеЗависимости);
|
||||
КонецЕсли;
|
||||
#Иначе
|
||||
Если НЕ РезультатРазрешения.ДоступностьНаКлиенте Тогда
|
||||
ВызватьИсключение СтрШаблон("Зависимость `%1` недоступна на клиенте", ПредставлениеЗависимости);
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
|
||||
Возврат ДанныеЗависимости;
|
||||
|
||||
КонецФункции
|
||||
@ -42,7 +59,7 @@
|
||||
// CommonModule.ЮТТесты
|
||||
Функция ДобавитьЗависимостьПриРегистрации(ОписаниеЗависимости) Экспорт
|
||||
|
||||
Если ЮТКонтекстСлужебный.КонтекстИсполнения() <> Неопределено Тогда
|
||||
Если ЮТКонтекстСлужебный.ТекущийЭтапПрогона() <> ЮТФабрика.ЭтапыПрогона().ЗагрузкаТестов Тогда
|
||||
Возврат ОписаниеЗависимости;
|
||||
Иначе
|
||||
ЮТТестыСлужебный.ДобавитьЗависимость(ОписаниеЗависимости);
|
||||
|
@ -0,0 +1,50 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// Copyright 2021-2024 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,10 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="aadcdc6d-a7a4-48d0-a3ac-3d77022cca43">
|
||||
<name>ЮТЗависимостиСлужебныйВызовСервера</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Зависимости служебный вызов сервера</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<serverCall>true</serverCall>
|
||||
</mdclass:CommonModule>
|
@ -58,7 +58,8 @@
|
||||
// Дедупликация зависимостей.
|
||||
//
|
||||
// Параметры:
|
||||
// РезультатЧтенияТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей, которые содержат информацию о запускаемых тестах
|
||||
// РезультатЧтенияТестов - Массив из см. ЮТФабрикаСлужебный.ОписаниеТестовогоМодуля - Набор описаний тестовых модулей,
|
||||
// которые содержат информацию о запускаемых тестах
|
||||
Процедура ДедупликацияЗависимостей(РезультатЧтенияТестов) Экспорт
|
||||
|
||||
Зависимости = Новый Соответствие();
|
||||
@ -125,10 +126,19 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура РазрешитьЗависимостьАсинхронно(Результат, Параметры) Экспорт
|
||||
Процедура РазрешитьЗависимостьАсинхронно(_, Параметры) Экспорт
|
||||
|
||||
ОписаниеЗависимости = Параметры.ОписаниеЗависимости;
|
||||
ЮТЛогирование.Отладка("Обработка зависимостей: асинхронная обработка зависимости " + ЮТЗависимостиСлужебный.ПредставлениеЗависимости(ОписаниеЗависимости));
|
||||
ПредставлениеЗависимости = ЮТЗависимостиСлужебный.ПредставлениеЗависимости(ОписаниеЗависимости);
|
||||
|
||||
ЮТЛогирование.Отладка("Обработка зависимостей: асинхронная обработка зависимости " + ПредставлениеЗависимости);
|
||||
|
||||
Если ОписаниеЗависимости.ОбработкаНаСервере Тогда
|
||||
Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
|
||||
Результат.Ошибка = "Скорректируйте параметры зависимости, асинхронная зависимость не может обрабатываться на сервере";
|
||||
ОбработатьРезультатРазрешенияЗависимости(Результат, Параметры);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Обработчик = Новый ОписаниеОповещения("ОбработатьРезультатРазрешенияЗависимости", ЭтотОбъект, Параметры);
|
||||
|
||||
@ -139,20 +149,40 @@
|
||||
Ошибка = ЮТМетодыСлужебный.ВыполнитьМетод(ИмяМетода, ПараметрыМетода);
|
||||
|
||||
Если Ошибка <> Неопределено Тогда
|
||||
РезультатРазрешения = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
|
||||
РезультатРазрешения.Ошибка = Ошибка;
|
||||
ОбработатьРезультатРазрешенияЗависимости(РезультатРазрешения, Параметры);
|
||||
Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
|
||||
Результат.Ошибка = Ошибка;
|
||||
ОбработатьРезультатРазрешенияЗависимости(Результат, Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура РазрешитьЗависимость(_, Параметры) Экспорт
|
||||
|
||||
ОписаниеЗависимости = Параметры.ОписаниеЗависимости;
|
||||
|
||||
Попытка
|
||||
Если ОписаниеЗависимости.ОбработкаНаСервере Тогда
|
||||
Результат = ЮТЗависимостиСлужебныйВызовСервера.РазрешитьЗависимость(ОписаниеЗависимости);
|
||||
Иначе
|
||||
Результат = ЮТМетодыСлужебный.ВызватьФункцию(ОписаниеЗависимости.МетодРеализации, ОписаниеЗависимости.Параметры, Ложь);
|
||||
КонецЕсли;
|
||||
Исключение
|
||||
|
||||
Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
|
||||
Результат.Ошибка = ИнформацияОбОшибке();
|
||||
|
||||
КонецПопытки;
|
||||
|
||||
ОбработатьРезультатРазрешенияЗависимости(Результат, Параметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработатьРезультатРазрешенияЗависимости(Результат, Параметры) Экспорт
|
||||
|
||||
ОписаниеЗависимости = Параметры.ОписаниеЗависимости;
|
||||
ПредставлениеЗависимости = ЮТЗависимостиСлужебный.ПредставлениеЗависимости(ОписаниеЗависимости);
|
||||
ЮТЛогирование.Отладка("Обработка зависимостей: заврешена обработка зависимости " + ПредставлениеЗависимости);
|
||||
|
||||
ПараметрыИсполнения = Параметры.ПараметрыИсполнения;
|
||||
ПредставлениеЗависимости = ЮТЗависимостиСлужебный.ПредставлениеЗависимости(ОписаниеЗависимости);
|
||||
ЮТЛогирование.Отладка("Обработка зависимостей: сохранение результата обработки зависимости " + ПредставлениеЗависимости);
|
||||
|
||||
Если НЕ Результат.Успешно Тогда
|
||||
Сообщение = СтрШаблон("Не удалось разрешить зависимость `%1`", ПредставлениеЗависимости);
|
||||
@ -160,60 +190,55 @@
|
||||
ЮТЛогирование.Ошибка(Результат.Ошибка.Сообщение);
|
||||
КонецЕсли;
|
||||
|
||||
СохранитьРезультатРазрешенияЗависимости(ОписаниеЗависимости.Ключ, Результат);
|
||||
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ПараметрыИсполнения);
|
||||
СохранитьРезультатРазрешенияЗависимости(ОписаниеЗависимости, Результат);
|
||||
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(Параметры.ПараметрыИсполнения);
|
||||
|
||||
ЮТЛогирование.Отладка("Обработка зависимостей: завершена обработка зависимости " + ПредставлениеЗависимости);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура РазрешитьЗависимость(Результат, Параметры) Экспорт
|
||||
Процедура СохранитьРезультатРазрешенияЗависимости(ОписаниеЗависимости, Результат) Экспорт
|
||||
|
||||
ОписаниеЗависимости = Параметры.ОписаниеЗависимости;
|
||||
ИмяДанныеЗависимостей = ЮТЗависимостиСлужебный.ИмяКонтекстаДанныеЗависимостей();
|
||||
ИмяРазрешенныеЗависимости = ЮТЗависимостиСлужебный.ИмяКонтекстаРазрешенныеЗависимости();
|
||||
|
||||
Попытка
|
||||
РезультатРазрешения = ЮТМетодыСлужебный.ВызватьФункцию(ОписаниеЗависимости.МетодРеализации, ОписаниеЗависимости.Параметры);
|
||||
Исключение
|
||||
РезультатРазрешения = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
|
||||
РезультатРазрешения.Ошибка = ИнформацияОбОшибке();
|
||||
КонецПопытки;
|
||||
|
||||
ОбработатьРезультатРазрешенияЗависимости(РезультатРазрешения, Параметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура СохранитьРезультатРазрешенияЗависимости(КлючЗависимости, Результат) Экспорт
|
||||
|
||||
ИмяКонтекстаДанныеЗависимостей = ЮТЗависимостиСлужебный.ИмяКонтекстаДанныеЗависимостей();
|
||||
Результат.ДоступностьНаКлиенте = ОписаниеЗависимости.ДоступностьНаКлиенте;
|
||||
Результат.ДоступностьНаСервере = ОписаниеЗависимости.ДоступностьНаСервере;
|
||||
|
||||
КонтекстРазрешенныеЗависимости = ЮТЗависимостиСлужебный.КонтекстРазрешенныеЗависимости();
|
||||
КонтекстРазрешенныеЗависимости.Вставить(КлючЗависимости, Результат);
|
||||
КонтекстРазрешенныеЗависимости.Вставить(ОписаниеЗависимости.Ключ, Результат);
|
||||
|
||||
ПередаваемыеЗначения = Новый Соответствие();
|
||||
ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, Результат);
|
||||
|
||||
ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяРазрешенныеЗависимости, ПередаваемыеЗначения);
|
||||
ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяРазрешенныеЗависимости, ПередаваемыеЗначения, Истина);
|
||||
|
||||
Если Результат.СохраняемыйКонтекст <> Неопределено Тогда
|
||||
|
||||
ПередаваемыеЗначения.Вставить(КлючЗависимости, Результат.СохраняемыйКонтекстСервер);
|
||||
ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяКонтекстаДанныеЗависимостей, ПередаваемыеЗначения);
|
||||
ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяКонтекстаДанныеЗависимостей, ПередаваемыеЗначения, Истина);
|
||||
ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, Результат.СохраняемыйКонтекст);
|
||||
ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяДанныеЗависимостей, ПередаваемыеЗначения);
|
||||
ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяДанныеЗависимостей, ПередаваемыеЗначения, Истина);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат.СохраняемыйКонтекстСервер <> Неопределено Тогда
|
||||
|
||||
ПередаваемыеЗначения.Вставить(КлючЗависимости, Результат.СохраняемыйКонтекстСервер);
|
||||
ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяКонтекстаДанныеЗависимостей, ПередаваемыеЗначения, Истина);
|
||||
ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, Результат.СохраняемыйКонтекстСервер);
|
||||
ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяДанныеЗависимостей, ПередаваемыеЗначения, Истина);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
Если Результат.СохраняемыйКонтекстКлиент <> Неопределено Тогда
|
||||
|
||||
ПередаваемыеЗначения.Вставить(КлючЗависимости, Результат.СохраняемыйКонтекстКлиент);
|
||||
ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяКонтекстаДанныеЗависимостей, ПередаваемыеЗначения);
|
||||
ПередаваемыеЗначения.Вставить(ОписаниеЗависимости.Ключ, Результат.СохраняемыйКонтекстКлиент);
|
||||
ЮТКонтекстСлужебный.ВставитьЗначениеКонтекста(ИмяДанныеЗависимостей, ПередаваемыеЗначения);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеОбработкиЗависимостей(Результат, ПараметрыИсполнения) Экспорт
|
||||
Процедура ПослеОбработкиЗависимостей(_, ПараметрыИсполнения) Экспорт
|
||||
|
||||
РазрешенныеЗависимости = ЮТЗависимостиСлужебный.КонтекстРазрешенныеЗависимости();
|
||||
Статусы = ЮТФабрика.СтатусыИсполненияТеста();
|
||||
@ -294,7 +319,8 @@
|
||||
|
||||
Если Результат = Неопределено Тогда
|
||||
Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
|
||||
Сообщение = СтрШаблон("Нет информации о зависимости `%1`, что-то пошло не так", ЮТЗависимостиСлужебный.ПредставлениеЗависимости(ОписаниеЗависимости));
|
||||
ПредставлениеЗависимости = ЮТЗависимостиСлужебный.ПредставлениеЗависимости(ОписаниеЗависимости);
|
||||
Сообщение = СтрШаблон("Нет информации о зависимости `%1`, что-то пошло не так", ПредставлениеЗависимости);
|
||||
Результат.Ошибка = ОписаниеОшибкиПропуска(Сообщение);
|
||||
КонецЕсли;
|
||||
|
||||
|
@ -122,6 +122,8 @@
|
||||
Процедура ВыполнитьИнициализацию(ПараметрыЗапуска) Экспорт
|
||||
|
||||
ЮТКонтекстСлужебный.ИнициализироватьКонтекст();
|
||||
ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().Инициализация);
|
||||
|
||||
ЮТКонтекстСлужебный.СохранитьПараметрыЗапуска(ПараметрыЗапуска);
|
||||
ЮТКонтекстСлужебный.УстановитьГлобальныеНастройкиВыполнения(ПараметрыЗапуска.settings);
|
||||
|
||||
@ -144,7 +146,7 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикЗагрузитьПараметры(Результат, ДополнительныеПараметры) Экспорт
|
||||
Процедура ОбработчикЗагрузитьПараметры(_, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
|
||||
ЮТПараметрыЗапускаСлужебный.ПараметрыЗапуска(ДополнительныеПараметры.АргументыЗапуска, Обработчик);
|
||||
@ -163,15 +165,16 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикИнициализация(Результат, ДополнительныеПараметры) Экспорт
|
||||
Процедура ОбработчикИнициализация(_, ДополнительныеПараметры) Экспорт
|
||||
|
||||
ВыполнитьИнициализацию(ДополнительныеПараметры.ПараметрыЗапуска);
|
||||
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикЗагрузитьТесты(Результат, ДополнительныеПараметры) Экспорт
|
||||
Процедура ОбработчикЗагрузитьТесты(_, ДополнительныеПараметры) Экспорт
|
||||
|
||||
ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ЗагрузкаТестов);
|
||||
ЮТСобытияСлужебный.ПередЧтениеСценариев();
|
||||
|
||||
ТестовыеМодули = ЮТЧитательСлужебный.ЗагрузитьТесты(ДополнительныеПараметры.ПараметрыЗапуска);
|
||||
@ -191,16 +194,18 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикРазрешитьЗависимости(Результат, ДополнительныеПараметры) Экспорт
|
||||
Процедура ОбработчикРазрешитьЗависимости(_, ДополнительныеПараметры) Экспорт
|
||||
|
||||
ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().РазрешениеЗависимостей);
|
||||
Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
|
||||
|
||||
ЮТЗависимостиСлужебныйКлиент.РазрешитьЗависимости(ДополнительныеПараметры.ИсполняемыеТестовыеМодули, Обработчик);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикВыполнитьТестирование(Результат, ДополнительныеПараметры) Экспорт
|
||||
Процедура ОбработчикВыполнитьТестирование(_, ДополнительныеПараметры) Экспорт
|
||||
|
||||
ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ПрогонТестов);
|
||||
ЮТСобытияСлужебный.ПередВыполнениемТестов(ДополнительныеПараметры.ИсполняемыеТестовыеМодули);
|
||||
|
||||
РезультатыТестирования = Новый Массив();
|
||||
@ -219,8 +224,9 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикСохранитьОтчет(Результат, ДополнительныеПараметры) Экспорт
|
||||
Процедура ОбработчикСохранитьОтчет(_, ДополнительныеПараметры) Экспорт
|
||||
|
||||
ЮТКонтекстСлужебный.УстановитьТекущийЭтапПрогона(ЮТФабрика.ЭтапыПрогона().ФормированиеОтчета);
|
||||
Если ЗначениеЗаполнено(ДополнительныеПараметры.ПараметрыЗапуска.reportPath) Тогда
|
||||
Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
|
||||
ЮТОтчетСлужебный.СформироватьОтчет(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска, Обработчик);
|
||||
@ -230,14 +236,14 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикСохранитьКодВозврата(Результат, ДополнительныеПараметры) Экспорт
|
||||
Процедура ОбработчикСохранитьКодВозврата(_, ДополнительныеПараметры) Экспорт
|
||||
|
||||
ЗаписатьКодВозврата(ДополнительныеПараметры.РезультатыТестирования, ДополнительныеПараметры.ПараметрыЗапуска);
|
||||
ЮТАсинхроннаяОбработкаСлужебныйКлиент.ВызватьСледующийОбработчик(ДополнительныеПараметры);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикЗавершить(Результат, ДополнительныеПараметры) Экспорт
|
||||
Процедура ОбработчикЗавершить(_, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Параметры = ДополнительныеПараметры.ПараметрыЗапуска;
|
||||
ЮТКонтекстСлужебный.УдалитьКонтекст();
|
||||
@ -250,7 +256,7 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработчикПодключитьКомпоненты(Результат, ДополнительныеПараметры) Экспорт
|
||||
Процедура ОбработчикПодключитьКомпоненты(_, ДополнительныеПараметры) Экспорт
|
||||
|
||||
Если ДополнительныеПараметры.ПараметрыЗапуска.ПодключатьВнешниеКомпоненты Тогда
|
||||
Обработчик = ЮТАсинхроннаяОбработкаСлужебныйКлиент.СледующийОбработчик(ДополнительныеПараметры);
|
||||
|
@ -255,6 +255,12 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ТекущийЭтапПрогона() Экспорт
|
||||
|
||||
Возврат ЗначениеКонтекста(ИмяКонтекстаЭтапПрогона());
|
||||
|
||||
КонецФункции
|
||||
|
||||
// см. ЮТФабрика.ПараметрыЗапуска
|
||||
Функция ПараметрыЗапуска() Экспорт
|
||||
|
||||
@ -320,6 +326,16 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УстановитьТекущийЭтапПрогона(Этап) Экспорт
|
||||
|
||||
Если НЕ ЮТФабрика.ЭтапыПрогона().Свойство(Этап) Тогда
|
||||
ВызватьИсключение СтрШаблон("Передан неизвестный этап тестового прогона: `%1`", Этап);
|
||||
КонецЕсли;
|
||||
|
||||
УстановитьЗначениеКонтекста(ИмяКонтекстаЭтапПрогона(), Этап, Истина);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура УдалитьКонтекст() Экспорт
|
||||
|
||||
#Если Клиент Тогда
|
||||
@ -381,4 +397,10 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ИмяКонтекстаЭтапПрогона()
|
||||
|
||||
Возврат "КонтекстЭтапПрогона";
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
@ -18,13 +18,6 @@
|
||||
|
||||
#Область СлужебныйПрограммныйИнтерфейс
|
||||
|
||||
// Поместить файлы в рабочий каталог.
|
||||
//
|
||||
// Параметры:
|
||||
// ПереданныеФайлы - Массив Из ОписаниеПереданногоФайла
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
//
|
||||
Функция ПоместитьФайлыВРабочийКаталог(Знач ПереданныеФайлы) Экспорт
|
||||
|
||||
Контекст = Новый Структура();
|
||||
@ -48,6 +41,41 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция ФабрикаXDTO(Знач КаталогСхем) Экспорт
|
||||
|
||||
Каталог = ЮТест.Зависимость(ЮТЗависимости.ФайлыПроекта(КаталогСхем)).ПолноеИмя;
|
||||
|
||||
ПостроительСхем = Новый ПостроительСхемXML();
|
||||
ПостроительDOM = Новый ПостроительDOM();
|
||||
НаборСхем = Новый НаборСхемXML();
|
||||
|
||||
ФайлыСхем = НайтиФайлы(Каталог, "*.xsd", Истина);
|
||||
|
||||
Для Каждого Файл Из ФайлыСхем Цикл
|
||||
|
||||
ЧтениеXML = Новый ЧтениеXML();
|
||||
ЧтениеXML.ОткрытьФайл(Файл.ПолноеИмя);
|
||||
Схема = ПостроительСхем.СоздатьСхемуXML(ПостроительDOM.Прочитать(ЧтениеXML).ЭлементДокумента);
|
||||
ЧтениеXML.Закрыть();
|
||||
Если Схема <> Неопределено Тогда
|
||||
НаборСхем.Добавить(Схема);
|
||||
КонецЕсли;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Фабрика = Новый ФабрикаXDTO(НаборСхем);
|
||||
|
||||
Результат = ЮТФабрикаСлужебный.РезультатРазрешенияЗависимости();
|
||||
Результат.Успешно = Фабрика <> Неопределено;
|
||||
|
||||
Если Результат.Успешно Тогда
|
||||
Результат.СохраняемыйКонтекст = Новый Структура("Фабрика", Фабрика);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
@ -87,7 +87,7 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает перечисление возможные уровнией исполнения тестрв.
|
||||
// Возвращает перечисление возможные уровней исполнения тестов.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ФиксированнаяСтруктура - Уровни исполнения:
|
||||
@ -105,6 +105,28 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает перечисление для описания жизненного цикла прогона тестов
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ФиксированнаяСтруктура - Этапа прогона:
|
||||
// * Инициализация - Строка
|
||||
// * ЗагрузкаТестов - Строка
|
||||
// * РазрешениеЗависимостей - Строка
|
||||
// * ПрогонТестов - Строка
|
||||
// * ФормированиеОтчета - Строка
|
||||
Функция ЭтапыПрогона() Экспорт
|
||||
|
||||
Этапы = Новый Структура;
|
||||
Этапы.Вставить("Инициализация", "Инициализация");
|
||||
Этапы.Вставить("ЗагрузкаТестов", "ЗагрузкаТестов");
|
||||
Этапы.Вставить("РазрешениеЗависимостей", "РазрешениеЗависимостей");
|
||||
Этапы.Вставить("ПрогонТестов", "ПрогонТестов");
|
||||
Этапы.Вставить("ФормированиеОтчета", "ФормированиеОтчета");
|
||||
|
||||
Возврат Новый ФиксированнаяСтруктура(Этапы);
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
// ПараметрыЗапуска
|
||||
@ -121,7 +143,7 @@
|
||||
// * reportFormat - Строка - Формат отчета о тестировании.
|
||||
// Модули реализующие различные форматы отчетов собраны в подсистеме ЮТФормированиеОтчета
|
||||
// * logging - см. ПараметрыЛогирования
|
||||
// * showReport - Булево - Признак необходмости отобразить отчет в 1с по окончании тестирования
|
||||
// * showReport - Булево - Признак необходимости отобразить отчет в 1с по окончании тестирования
|
||||
// * exitCode - Строка - Путь к файлу, в который будет записан коды выхода
|
||||
// * projectPath - Строка - Путь к каталогу с файлами проекта тестирования, репозиторию
|
||||
// * ПодключатьВнешниеКомпоненты - Булево - Выполнять установку и подключение внешних компонент при старте.
|
||||
@ -218,6 +240,18 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Создает новое описание зависимости теста.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - Новое описание зависимости:
|
||||
// * Идентификатор - Строка - Идентификатор зависимости
|
||||
// * МетодРеализации - Строка - Метод, вызываемый для разрешения зависимости
|
||||
// * Параметры - Массив из Произвольный - Параметры зависимости, будут проброшены в метод
|
||||
// * Ключ - Неопределено - Уникальный ключ зависимости, рассчитывается движком
|
||||
// * Асинхронный - Булево - Признак, что зависимость асинхронная. Асинхронность реализуется за счет передачи ОписанияОповещения в метод реализации
|
||||
// * ОбработкаНаСервере - Булево - Признак обработки зависимости на сервере
|
||||
// * ДоступностьНаКлиенте - Булево - Признак доступности зависимости на клиенте
|
||||
// * ДоступностьНаСервере - Булево - Признак доступности зависимости на сервере
|
||||
Функция НовоеОписаниеЗависимости() Экспорт
|
||||
|
||||
Описание = Новый Структура;
|
||||
@ -226,6 +260,9 @@
|
||||
Описание.Вставить("Параметры", Новый Массив);
|
||||
Описание.Вставить("Ключ", Неопределено);
|
||||
Описание.Вставить("Асинхронный", Ложь);
|
||||
Описание.Вставить("ОбработкаНаСервере", Ложь);
|
||||
Описание.Вставить("ДоступностьНаКлиенте", Истина);
|
||||
Описание.Вставить("ДоступностьНаСервере", Истина);
|
||||
|
||||
Возврат Описание;
|
||||
|
||||
|
@ -429,7 +429,7 @@
|
||||
// Структура - Описание проверяемого значения:
|
||||
// * Значение - Произвольный
|
||||
// * Представление - Строка - Представление объекта
|
||||
// - Неопределено - Если не указано тогда используется платформенное предсталение (`Строка(Значение)`)
|
||||
// - Неопределено - Если не указано тогда используется платформенное представление (`Строка(Значение)`)
|
||||
// * ИмяСвойства - Строка, Число, Неопределено - Имя проверяемого реквизита, индекса
|
||||
Функция ОписаниеПроверяемогоЗначения(ПроверяемоеЗначение) Экспорт
|
||||
|
||||
@ -473,6 +473,8 @@
|
||||
Результат.Вставить("СохраняемыйКонтекст", Неопределено);
|
||||
Результат.Вставить("СохраняемыйКонтекстКлиент", Неопределено);
|
||||
Результат.Вставить("СохраняемыйКонтекстСервер", Неопределено);
|
||||
Результат.Вставить("ДоступностьНаКлиенте", Истина);
|
||||
Результат.Вставить("ДоступностьНаСервере", Истина);
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
@ -673,7 +675,7 @@
|
||||
// Структура - Описание формата отчета:
|
||||
// * Идентификатор - Строка - Уникальный идентификатор формата отчета
|
||||
// * Представление - Строка - Пользовательское представление отчета, выводится в форму настроек тестирования
|
||||
// * ЗаписьВКаталог - Булево - Отчет записывается в каталог, в этом случае должен быть установлен призак `СамостоятельнаяЗаписьОтчета`
|
||||
// * ЗаписьВКаталог - Булево - Отчет записывается в каталог, в этом случае должен быть установлен признак `СамостоятельнаяЗаписьОтчета`
|
||||
// * ФильтрВыбораФайла - Строка - Фильтр выбора, используется в форме настроек тестирования
|
||||
// * ИмяФайлаПоУмолчанию - Строка - Для отчетов, записываемых в файл, имя файла если в параметрах указан каталог
|
||||
// * СамостоятельнаяЗаписьОтчета - Булево - Способ записи отчета в файлы.
|
||||
|
@ -63,6 +63,7 @@
|
||||
<commonModules>CommonModule.ЮТест</commonModules>
|
||||
<commonModules>CommonModule.ЮТЗависимости</commonModules>
|
||||
<commonModules>CommonModule.ЮТЗависимостиСлужебный</commonModules>
|
||||
<commonModules>CommonModule.ЮТЗависимостиСлужебныйВызовСервера</commonModules>
|
||||
<commonModules>CommonModule.ЮТЗависимостиСлужебныйКлиент</commonModules>
|
||||
<commonModules>CommonModule.ЮТЗапросы</commonModules>
|
||||
<commonModules>CommonModule.ЮТЗапросыСлужебныйВызовСервера</commonModules>
|
||||
|
@ -194,7 +194,12 @@
|
||||
КонецЕсли;
|
||||
|
||||
СтекОбъектов = Новый Массив();
|
||||
|
||||
ТипОбъекта = Фабрика.Тип(ПространствоИмен, ИмяТипаОбъекта);
|
||||
Если ТипОбъекта = Неопределено Тогда
|
||||
ВызватьИсключение СтрШаблон("Неизвестный тип `%1`; пространство имен: `%2`", ИмяТипаОбъекта, ПространствоИмен);
|
||||
КонецЕсли;
|
||||
|
||||
ДобавитьНовыйОбъектВСтек(ТипОбъекта);
|
||||
|
||||
КонецПроцедуры
|
||||
@ -239,15 +244,18 @@
|
||||
Функция СлучайноеЗначениеСвойства(Свойство, Уровень = 0)
|
||||
|
||||
ТипСвойства = Свойство.Тип;
|
||||
|
||||
Если ТипЗнч(ТипСвойства) = Тип("ТипЗначенияXDTO") Тогда
|
||||
Возврат СлучайноеЗначениеПримитипа(Свойство);
|
||||
Возврат СлучайноеЗначениеПримитива(Свойство);
|
||||
ИначеЕсли Уровень < 3 Тогда
|
||||
Возврат СлучайноеЗначениеОбъекта(Свойство, Уровень + 1);
|
||||
Иначе
|
||||
Возврат Неопределено;
|
||||
КонецЕсли;
|
||||
|
||||
КонецФункции
|
||||
|
||||
Функция СлучайноеЗначениеПримитипа(Свойство)
|
||||
Функция СлучайноеЗначениеПримитива(Свойство)
|
||||
|
||||
Тип = Свойство.Тип;
|
||||
|
||||
|
117
fixtures/junit/JUnit.xsd
Normal file
117
fixtures/junit/JUnit.xsd
Normal file
@ -0,0 +1,117 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!--
|
||||
Source: https://svn.jenkins-ci.org/trunk/hudson/dtkit/dtkit-format/dtkit-junit-model/src/main/resources/com/thalesgroup/dtkit/junit/model/xsd/junit-4.xsd
|
||||
|
||||
This file available under the terms of the MIT License as follows:
|
||||
|
||||
*******************************************************************************
|
||||
* Copyright (c) 2010 Thales Corporate Services SAS *
|
||||
* *
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a copy *
|
||||
* of this software and associated documentation files (the "Software"), to deal*
|
||||
* in the Software without restriction, including without limitation the rights *
|
||||
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell *
|
||||
* copies of the Software, and to permit persons to whom the Software is *
|
||||
* furnished to do so, subject to the following conditions: *
|
||||
* *
|
||||
* The above copyright notice and this permission notice shall be included in *
|
||||
* all copies or substantial portions of the Software. *
|
||||
* *
|
||||
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR *
|
||||
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, *
|
||||
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE *
|
||||
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
|
||||
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,*
|
||||
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN *
|
||||
* THE SOFTWARE. *
|
||||
********************************************************************************
|
||||
-->
|
||||
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||
targetNamespace="http://junit.org/schema">
|
||||
|
||||
<xs:complexType name="failure">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:attribute name="type" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="message" type="xs:string" use="optional"/>
|
||||
</xs:complexType>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="error">
|
||||
<xs:complexType mixed="true">
|
||||
<xs:attribute name="type" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="message" type="xs:string" use="optional"/>
|
||||
</xs:complexType>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="properties">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="property" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="property">
|
||||
<xs:complexType>
|
||||
<xs:attribute name="name" type="xs:string" use="required"/>
|
||||
<xs:attribute name="value" type="xs:string" use="required"/>
|
||||
</xs:complexType>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:simpleType name="skipped" type="xs:string"/>
|
||||
<xs:simpleType name="system-err" type="xs:string"/>
|
||||
<xs:simpleType name="system-out" type="xs:string"/>
|
||||
|
||||
<xs:complexType name="testcase">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="skipped" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element ref="error" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element ref="failure" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element ref="system-out" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element ref="system-err" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" type="xs:string" use="required"/>
|
||||
<xs:attribute name="assertions" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="time" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="classname" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="status" type="xs:string" use="optional"/>
|
||||
</xs:complexType>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="testsuite">
|
||||
<xs:sequence>
|
||||
<xs:element name="properties" type="property" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="testcase" type="testcase" minOccurs="0" maxOccurs="unbounded"/>
|
||||
<xs:element name="system-out" type="system-out" minOccurs="0" maxOccurs="1"/>
|
||||
<xs:element name="system-err" type="system-err" minOccurs="0" maxOccurs="1"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" type="xs:string" use="required"/>
|
||||
<xs:attribute name="tests" type="xs:string" use="required"/>
|
||||
<xs:attribute name="failures" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="errors" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="time" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="disabled" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="skipped" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="timestamp" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="hostname" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="id" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="package" type="xs:string" use="optional"/>
|
||||
</xs:complexType>
|
||||
|
||||
<xs:complexType name="testsuites">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element ref="testsuite" minOccurs="0" maxOccurs="unbounded"/>
|
||||
</xs:sequence>
|
||||
<xs:attribute name="name" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="time" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="tests" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="failures" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="disabled" type="xs:string" use="optional"/>
|
||||
<xs:attribute name="errors" type="xs:string" use="optional"/>
|
||||
</xs:complexType>
|
||||
</xs:complexType>
|
||||
|
||||
|
||||
</xs:schema>
|
@ -25,6 +25,7 @@
|
||||
.ДобавитьТест("ДанныеЗависимости").ЗависитОт().ФайлыПроекта(".gitignore")
|
||||
.ДобавитьТест("ДанныеЗависимости_Каталог").ЗависитОт().ФайлыПроекта(".github")
|
||||
.ДобавитьТест("ДанныеЗависимости_НеизвестныйФайл").ЗависитОт().ФайлыПроекта("НеизвестныйФайл")
|
||||
.ДобавитьСерверныйТест("ФабрикаJUnit").ЗависитОт().ФабрикаXDTO("fixtures/junit")
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
@ -50,6 +51,7 @@
|
||||
ЮТест.ОжидаетЧто(Зависимость4, "Зависимость с параметром")
|
||||
.ИмеетТип("ФиксированнаяСтруктура")
|
||||
.Равно(Зависимость5)
|
||||
;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
@ -87,6 +89,23 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ФабрикаJUnit() Экспорт
|
||||
|
||||
Фабрика = ЮТест.Зависимость(ЮТЗависимости.ФабрикаXDTO("fixtures/junit")).Фабрика;
|
||||
|
||||
ТестовыйНабор = ЮТест.Данные().КонструкторОбъектаXDTO("testsuite", "http://junit.org/schema", Фабрика)
|
||||
.ФикцияНезаполненных()
|
||||
.ДанныеОбъекта();
|
||||
|
||||
ЮТест.ОжидаетЧто(ТестовыйНабор)
|
||||
.ИмеетТип(Тип("ОбъектXDTO"))
|
||||
.Существует()
|
||||
.ИмеетСвойство("properties")
|
||||
.ИмеетСвойство("testcase")
|
||||
.ИмеетСвойство("failures");
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
Loading…
Reference in New Issue
Block a user