mirror of
https://github.com/bia-technologies/yaxunit.git
synced 2025-01-20 18:48: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")
|
ЮТест.ОжидаетЧто(Наборы, "Прочитанные наборы расширения 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>
|
||||||
<commonModules>CommonModule.ОМ_ЮТКонструкторТестовыхДанных</commonModules>
|
<commonModules>CommonModule.ОМ_ЮТКонструкторТестовыхДанных</commonModules>
|
||||||
<commonModules>CommonModule.ОМ_ЮТМетаданные</commonModules>
|
<commonModules>CommonModule.ОМ_ЮТМетаданные</commonModules>
|
||||||
<commonModules>CommonModule.ОМ_ЮТПодражатель_Банки</commonModules>
|
<commonModules>CommonModule.ОМ_ЮТПодражатель_Банки</commonModules>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user