mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-01-05 12:50:36 +02:00
Merge pull request #235 from bia-technologies/feature/234
234 / Реанимация работы движка после поломки контекста
This commit is contained in:
commit
4becf9ca91
@ -76,15 +76,17 @@
|
||||
Результаты = Новый Массив();
|
||||
|
||||
Для Каждого Тест Из Набор.Тесты Цикл
|
||||
|
||||
ВТранзакции = Ложь;
|
||||
ПередКаждымТестом(ТестовыйМодуль, Набор, Тест, ВТранзакции);
|
||||
|
||||
Тест.ДатаСтарта = ТекущаяУниверсальнаяДатаВМиллисекундах();
|
||||
|
||||
ЮТСобытия.ПередКаждымТестом(ТестовыйМодуль, Набор, Тест);
|
||||
ВыполнитьТестовыйМетод(Тест);
|
||||
ЮТСобытия.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест);
|
||||
Тест.Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Тест.ДатаСтарта;
|
||||
|
||||
ОбработатьЗавершениеТеста(Тест);
|
||||
ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест, ВТранзакции);
|
||||
|
||||
Тест.Статус = ЮТРегистрацияОшибок.СтатусВыполненияТеста(Тест);
|
||||
Результаты.Добавить(Тест);
|
||||
|
||||
КонецЦикла;
|
||||
@ -97,10 +99,48 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
Процедура ОбработатьЗавершениеТеста(Тест)
|
||||
Процедура ПередКаждымТестом(ТестовыйМодуль, Набор, Тест, ВТранзакции)
|
||||
|
||||
Тест.Длительность = ТекущаяУниверсальнаяДатаВМиллисекундах() - Тест.ДатаСтарта;
|
||||
Тест.Статус = ЮТРегистрацияОшибок.СтатусВыполненияТеста(Тест);
|
||||
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
|
||||
ВТранзакции = ЮТНастройкиВыполнения.ВТранзакции();
|
||||
Если ВТранзакции Тогда
|
||||
НачатьТранзакцию();
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
|
||||
ЮТСобытия.ПередКаждымТестом(ТестовыйМодуль, Набор, Тест);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест, ВТранзакции)
|
||||
|
||||
Если ЮТКонтекст.ДанныеКонтекста() = Неопределено Тогда // Сломан контекст
|
||||
ОбновитьПовторноИспользуемыеЗначения();
|
||||
ОтменитьТранзакциюТеста(Тест, ВТранзакции);
|
||||
ЮТСобытия.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест);
|
||||
Иначе
|
||||
ЮТСобытия.ПослеКаждогоТеста(ТестовыйМодуль, Набор, Тест);
|
||||
ОтменитьТранзакциюТеста(Тест, ВТранзакции);
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОтменитьТранзакциюТеста(Тест, ВТранзакции)
|
||||
|
||||
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
|
||||
Если ВТранзакции Тогда
|
||||
Если ТранзакцияАктивна() Тогда
|
||||
ОтменитьТранзакцию();
|
||||
Иначе
|
||||
ЮТРегистрацияОшибок.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружено лишне закрытие транзакции");
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
Пока ТранзакцияАктивна() Цикл
|
||||
ОтменитьТранзакцию();
|
||||
ЮТРегистрацияОшибок.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружена незакрытая транзакция");
|
||||
КонецЦикла;
|
||||
#КонецЕсли
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@ -84,12 +84,6 @@
|
||||
ПолучитьСообщенияПользователю(Истина);
|
||||
#КонецЕсли
|
||||
|
||||
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
|
||||
Если ЮТНастройкиВыполнения.ВТранзакции() Тогда
|
||||
НачатьТранзакцию();
|
||||
КонецЕсли;
|
||||
#КонецЕсли
|
||||
|
||||
ВызватьОбработкуСобытий(ЮТОбщий.ЗначениеВМассиве("ПередКаждымТестом", "ПередТестом"), ОписаниеСобытия);
|
||||
|
||||
КонецПроцедуры
|
||||
@ -106,18 +100,6 @@
|
||||
|
||||
ВызватьОбработкуСобытий(ЮТОбщий.ЗначениеВМассиве("ПослеТеста", "ПослеКаждогоТеста"), ОписаниеСобытия);
|
||||
|
||||
#Если Сервер ИЛИ ТолстыйКлиентОбычноеПриложение ИЛИ ТолстыйКлиентУправляемоеПриложение Тогда
|
||||
Если ЮТНастройкиВыполнения.ВТранзакции() Тогда
|
||||
ОтменитьТранзакцию();
|
||||
КонецЕсли;
|
||||
|
||||
Пока ТранзакцияАктивна() Цикл
|
||||
ОтменитьТранзакцию();
|
||||
ЮТРегистрацияОшибок.ЗарегистрироватьПростуюОшибкуВыполнения(Тест, "Обнаружена незакрытая транзакция");
|
||||
КонецЦикла;
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
Уровни = ЮТФабрика.УровниИсполнения();
|
||||
КонтекстИсполнения = ЮТКонтекст.КонтекстИсполнения();
|
||||
КонтекстИсполнения.Уровень = Уровни.НаборТестов;
|
||||
|
@ -0,0 +1,48 @@
|
||||
//©///////////////////////////////////////////////////////////////////////////©//
|
||||
//
|
||||
// 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,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="4f57696f-566f-4995-8e38-4b135636d17f">
|
||||
<name>ОМ_ЮТИсполнительКлиентСервер</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>ЮТИсполнитель клиент сервер</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
</mdclass:CommonModule>
|
@ -93,7 +93,7 @@
|
||||
|
||||
Наборы = ЮТЧитатель.ЗагрузитьТесты(ПараметрыЗапуска);
|
||||
ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения tests")
|
||||
.ИмеетДлину(24);
|
||||
.ИмеетДлину(25);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
|
@ -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>
|
||||
|
Loading…
Reference in New Issue
Block a user