1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2024-11-30 08:36:50 +02:00

ORAIS-1280: Использование метода ЮТест.Пропустить влечет запись кода 1 в файл с результатом проверки

This commit is contained in:
Зазулов Алексей Александрович (ЗК-0001393) 2024-02-14 18:07:28 +03:00 committed by Valery Maximov
parent 19f82edd65
commit b53b6e72ff
6 changed files with 150 additions and 7 deletions

View File

@ -1,6 +1,6 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// Copyright 2021-2023 BIA-Technologies Limited Liability Company
// 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.
@ -374,14 +374,14 @@
Для Каждого Набор Из Модуль.НаборыТестов Цикл
Если ЗначениеЗаполнено(Набор.Ошибки) Тогда
Если РезультатТестаСодержитОшибки(Набор) Тогда
Успешно = Ложь;
Прервать;
КонецЕсли;
Для Каждого Тест Из Набор.Тесты Цикл
Если ЗначениеЗаполнено(Тест.Ошибки) Тогда
Если РезультатТестаСодержитОшибки(Тест) Тогда
Успешно = Ложь;
Прервать;
КонецЕсли;
@ -410,4 +410,22 @@
КонецПроцедуры
Функция РезультатТестаСодержитОшибки(Тест)
Результат = Ложь;
Если НЕ ЗначениеЗаполнено(Тест.Ошибки) Тогда
Возврат Результат;
КонецЕсли;
ТипОшибкиПропущен = ЮТФабрика.ТипыОшибок().Пропущен;
Для Каждого ОписаниеОшибки Из Тест.Ошибки Цикл
Если ОписаниеОшибки.ТипОшибки <> ТипОшибкиПропущен Тогда
Результат = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
#КонецОбласти

View File

@ -0,0 +1,114 @@
//©///////////////////////////////////////////////////////////////////////////©//
//
// 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.
//
//©///////////////////////////////////////////////////////////////////////////©//
#Область СлужебныйПрограммныйИнтерфейс
Процедура ИсполняемыеСценарии() Экспорт
ЮТТесты
.ДобавитьТест("ОбработчикСохранитьКодВозврата")
;
КонецПроцедуры
Процедура ОбработчикСохранитьКодВозврата() Экспорт
ФайлРезультата = ЮТест.Данные().НовоеИмяВременногоФайла("txt");
ДополнительныеПараметры = ДополнительныеПараметрыТестирования(ФайлРезультата, МассивОшибок());
ЮТИсполнительКлиент.ОбработчикСохранитьКодВозврата(Неопределено, ДополнительныеПараметры);
ПроверитьРезультатВыполнения(ФайлРезультата, "0");
ДополнительныеПараметры = ДополнительныеПараметрыТестирования(ФайлРезультата, МассивОшибок(Истина));
ЮТИсполнительКлиент.ОбработчикСохранитьКодВозврата(Неопределено, ДополнительныеПараметры);
ПроверитьРезультатВыполнения(ФайлРезультата, "1");
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
Функция ДополнительныеПараметрыТестирования(ИмяФайлаРезультата, МассивОшибок)
Тесты = Тесты(МассивОшибок);
НаборыТестов = НаборыТестов(Тесты);
ОписаниеРезультата = ОписаниеРезультатаТестирования(НаборыТестов);
ДополнительныеПараметры = ЮТИсполнительКлиент.ПараметрыИсполнения();
ДополнительныеПараметры.Цепочка.Добавить(ЮТАсинхроннаяОбработкаСлужебныйКлиент.НовыйПустойОбработчик(2));
ДополнительныеПараметры.АргументыЗапуска = "";
ДополнительныеПараметры.ИсполняемыеТестовыеМодули = Новый Массив;
Параметры = Новый Структура;
Параметры.Вставить("exitCode", ИмяФайлаРезультата);
ДополнительныеПараметры.ПараметрыЗапуска = Параметры;
ДополнительныеПараметры.РезультатыТестирования = Новый Массив;
ДополнительныеПараметры.РезультатыТестирования.Добавить(ОписаниеРезультата);
Возврат ДополнительныеПараметры;
КонецФункции
Функция МассивОшибок(ДобавлятьУпавшийТест = Ложь)
Ошибки = Новый Массив;
ОписаниеОшибки = ЮТФабрика.ОписаниеВозникшейОшибки("Метод пропущен");
ОписаниеОшибки.ТипОшибки = ЮТФабрика.ТипыОшибок().Пропущен;
Ошибки.Добавить(ОписаниеОшибки);
Если ДобавлятьУпавшийТест Тогда
ОписаниеОшибки = ЮТФабрика.ОписаниеВозникшейОшибки("Ошибка исполнения");
ОписаниеОшибки.ТипОшибки = ЮТФабрика.ТипыОшибок().Исполнения;
Ошибки.Добавить(ОписаниеОшибки);
КонецЕсли;
Возврат Ошибки;
КонецФункции
Функция Тесты(МассивОшибок)
Тесты = Новый Массив;
Тесты.Добавить(Новый Структура("Ошибки", МассивОшибок));
Возврат Тесты;
КонецФункции
Функция НаборыТестов(Тесты)
НаборыТестов = Новый Массив;
НаборыТестов.Добавить(Новый Структура("Тесты, Ошибки", Тесты, Новый Массив));
Возврат НаборыТестов;
КонецФункции
Функция ОписаниеРезультатаТестирования(НаборыТестов)
ОписаниеРезультата = Новый Структура;
ОписаниеРезультата.Вставить("МетаданныеМодуля", Неопределено);
ОписаниеРезультата.Вставить("НаборыТестов", НаборыТестов);
ОписаниеРезультата.Вставить("Ошибки", Новый Массив);
ОписаниеРезультата.Вставить("НастройкиВыполнения", Неопределено);
Возврат ОписаниеРезультата;
КонецФункции
Процедура ПроверитьРезультатВыполнения(ИмяФайлаРезультата, ОжидаемыйРезультат)
РезультатВыполнения = СокрЛП(ЮТОбщий.ДанныеТекстовогоФайла(ИмяФайлаРезультата));
ЮТест.ОжидаетЧто(РезультатВыполнения)
.ИмеетТип("Строка")
.Равно(ОжидаемыйРезультат)
;
КонецПроцедуры
#КонецОбласти

View File

@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="5ae382ed-d647-4321-98b7-21c8e862c575">
<name>ОМ_ЮТИсполнительКлиент</name>
<synonym>
<key>ru</key>
<value>ЮТИсполнительКлиент</value>
</synonym>
<clientManagedApplication>true</clientManagedApplication>
<clientOrdinaryApplication>true</clientOrdinaryApplication>
</mdclass:CommonModule>

View File

@ -1472,7 +1472,7 @@
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
ПроверитьОшибкуУтверждения(Ошибка,
"Ожидали, что проверяемое значение `123`длиной (размером) `3` имеет длину (размер) `123`, но это не так");
"Ожидали, что проверяемое значение `123` длиной (размером) `3` имеет длину (размер) `123`, но это не так");
ПроверитьДанныеОшибкиСравнения(3, 123);
Попытка
@ -1492,7 +1492,7 @@
Исключение
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Дата: тип проверяемого значения `%1` не обрабатывается утверждением", Тип("Дата")));
ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Дата: Тип проверяемого значения `%1` не обрабатывается утверждением", Тип("Дата")));
Попытка
Ошибка = Неопределено;
@ -1561,7 +1561,7 @@
Исключение
Ошибка = ИнформацияОбОшибке();
КонецПопытки;
ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Дата: тип проверяемого значения `%1` не обрабатывается утверждением", Тип("Дата")));
ПроверитьОшибкуИсполнения(Ошибка, СтрШаблон("Дата: Тип проверяемого значения `%1` не обрабатывается утверждением", Тип("Дата")));
Попытка
Ошибка = Неопределено;

View File

@ -93,7 +93,7 @@
Наборы = ЮТЧитатель.ЗагрузитьТесты(ПараметрыЗапуска);
ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests")
.ИмеетДлину(25);
.ИмеетДлину(26);
КонецПроцедуры

View File

@ -34,6 +34,7 @@
<commonModules>CommonModule.ОМ_ЮТест</commonModules>
<commonModules>CommonModule.ОМ_ЮТестПереопределяемый</commonModules>
<commonModules>CommonModule.ОМ_ЮТЗапросы</commonModules>
<commonModules>CommonModule.ОМ_ЮТИсполнительКлиент</commonModules>
<commonModules>CommonModule.ОМ_ЮТИсполнительКлиентСервер</commonModules>
<commonModules>CommonModule.ОМ_ЮТКонструкторТестовыхДанных</commonModules>
<commonModules>CommonModule.ОМ_ЮТМетаданные</commonModules>