1
0
mirror of https://github.com/bia-technologies/yaxunit.git synced 2024-12-03 08:45:31 +02:00

Merge branch 'master' into develop

This commit is contained in:
Aleksey Ko 2024-05-07 15:06:26 +03:00
commit dc1fe2173b
8 changed files with 255 additions and 18 deletions

View File

@ -0,0 +1,34 @@
---
title: YaxUnit. Версия 24.04
authors: alkoleft
tags: [releases, yaxunit]
---
[Release 24.04](https://github.com/bia-technologies/yaxunit/releases/tag/24.04)
## Новое в версии
### Тестовые данные
* [NEW] Метод `УстановитьСсылкуНового` в конструкторе объектов [#310](https://github.com/bia-technologies/yaxunit/issues/310), спасибо [@alexandr-yang](https://github.com/alexandr-yang)
* Удаление тестовых данных без учета прав [#309](https://github.com/bia-technologies/yaxunit/issues/309), спасибо [@goodwinvu](https://github.com/goodwinvu)
### Зависимости
* [NEW] Зависимости тестов [#314](https://github.com/bia-technologies/yaxunit/issues/314)
* [NEW] Добавить возможность указывать рабочий каталог в параметрах запуска [#313](https://github.com/bia-technologies/yaxunit/issues/313)
* [NEW] Зависимости тестов. Фабрика XDTO [#322](https://github.com/bia-technologies/yaxunit/issues/322)
Подробнее о зависимостях вы можете узнать из [документации](/docs/features/dependencies)
### Прочее
* Рефакторинг механизма событий [#315](https://github.com/bia-technologies/yaxunit/issues/315)
Добавлена возможность создавать обработчики событий за пределами расширения движка, подробнее в [документации](docs/features/events)
* Добавлен шаблон PR
## Исправленные ошибки
* [Bug]: Не работает формат выбода ошибки HTML на Mac [#319](https://github.com/bia-technologies/yaxunit/issues/319), спасибо [@alexandr-yang](https://github.com/alexandr-yang)
* Мелкие исправления в документации [#320](https://github.com/bia-technologies/yaxunit/issues/320), спасибо [@alexandr-yang](https://github.com/alexandr-yang)
* [Bug]: Некорректное время результатов тестов в отчете формата allure, спасибо [@AlexPCRus](https://github.com/AlexPCRus)

View File

@ -67,3 +67,181 @@ YAxUnit также использует события для работы вн
* Выполнять начальную подготовку базы или настройку движка перед прогонами
* Реализовывать свои механизмы (например удаление данных с использованием подписок)
* Формировать отчеты о тестировании online.
### Подписка на события движка
Для подключения своих обработчиков событий вам необходимо:
1. Создание структуры подсистем
1. Создать свою подсистему (не рекомендуется использовать подсистемы движка) с именем оканчивающимся на `ЮТПодключаемыеМодули`, например, `Тесты_ЮТПодключаемыеМодули`.
2. У созданной подсистемы снять флаг `ВключатьВКомандныйИнтерфейс`.
3. Внутри нее создать подсистему с именем `ОбработчикиСобытий`.
4. Внутри подсистемы `ОбработчикиСобытий` создать подсистемы для нужной группы событий:
* Инициализация
* ЗагрузкаТестов
* ИсполнениеТестов
2. Добавить общий модуль (или использовать подходящий существующий) в котором будут размещены обработчики событий.
3. Сигнатура и описание обработчиков описаны ниже, примеры многих из них можно увидеть в движке.
#### Пример
Задача: необходимо по умолчанию включить настройку `ВТранзакции` для всех тестов.
Для этого необходимо подписаться на событие [`УстановитьПараметрыЗапускаПоУмолчанию`](#установитьпараметрызапускапоумолчаниюпараметрызапуска), которое относится к блоку [`Инициализация`](#инициализация)
Структура подсистем:
![Структура подсистем](images/test-settings-events-tree.png)
```bsl title="НастройкаYAxUnit"
#Область СлужебныйПрограммныйИнтерфейс
// Установить настройки по умолчанию.
//
// Параметры:
// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска
Процедура УстановитьПараметрыЗапускаПоУмолчанию(ПараметрыЗапуска) Экспорт
ПараметрыЗапуска.settings.ВТранзакции = Истина;
КонецПроцедуры
#КонецОбласти
```
## Описание событий движка
### Инициализация
#### УстановитьПараметрыЗапускаПоУмолчанию(ПараметрыЗапуска)
`&НаКлиенте`.
Подписка на это событие позволяет:
* выполнить базовую настройку параметров запуска
* эту настройку можно переопределить параметрами запуска (json файл с тройками)
* может быть полезно при расширении возможностей движка новыми л механизмами
* обработчик может (а точнее, должен) изменять `ПараметрыЗапуска`
Параметры:
* ПараметрыЗапуска - см. [ЮТФабрика.ПараметрыЗапуска](/api/ЮТФабрика#параметрызапуска)
#### ИнициализацияКонтекста(ДанныеКонтекста)
`&НаСервере` и `&НаКлиенте`.
Вызывается при первичной инициализации глобального контекста.
Используется для первоначального заполнения контекста, параметра `ДанныеКонтекста`.
Параметры:
* ДанныеКонтекста - Структура
#### Инициализация(ПараметрыЗапуска)
`&НаКлиенте`
Вызывается после инициализации контекстов и загрузки настроек.
Позволяет выполнить настройку различных механизмов движка.
:::note В этом обработчике нельзя менять параметр `ПараметрыЗапуска`.
:::
Параметры:
* ПараметрыЗапуска - см. [ЮТФабрика.ПараметрыЗапуска](/api/ЮТФабрика#параметрызапуска)
### ЗагрузкаТестов
#### ПередЧтениеСценариев()
`&НаКлиенте`
Вызывается перед загрузкой тестов.
#### ПередЧтениемСценариевМодуля(МетаданныеМодуля)
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
Вызывается перед чтением сценариев конкретного модуля (вызовом метода `ИсполняемыеСценарии`).
Позволяет настроить базовые параметры перед чтением настроек тестов модуля.
Параметры:
* МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
#### ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии)
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
Позволяет настроить/обработать параметры загруженных настроек тестов модуля
Параметры:
* МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
* ИсполняемыеСценарии - см. ЮТТестыСлужебный.СценарииМодуля
#### ПослеЧтенияСценариев(Сценарии)
`&НаКлиенте`
Вызывается после загрузки всех тестов.
#### ПослеФормированияИсполняемыхНаборовТестов(ИсполняемыеТестовыеМодули)
`&НаКлиенте`
Вызывается после формирования исполняемых тестов, сформированных на основе зарегистрированных тестов.
Например, из одного клиент-серверного теста формируется 2 исполняемых теста (для сервера и для клиента)
### ИсполнениеТестов
#### ПередВыполнениемТестов(ИсполняемыеМодули)
`&НаКлиенте`
Перед запуском всех тестов.
#### ПередВсемиТестамиМодуля(ОписаниеСобытия)
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
Смотрите описание [выше](#события-тестов)
#### ПередТестовымНабором(ОписаниеСобытия)
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
Смотрите описание [выше](#события-тестов)
#### ПередКаждымТестом(ОписаниеСобытия)
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
Смотрите описание [выше](#события-тестов)
#### ПослеКаждогоТеста(ОписаниеСобытия)
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
Смотрите описание [выше](#события-тестов)
#### ПослеТестовогоНабора(ОписаниеСобытия)
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
Смотрите описание [выше](#события-тестов)
#### ПослеВсехТестовМодуля(ОписаниеСобытия)
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
Смотрите описание [выше](#события-тестов)
#### ПослеВыполненияТестов(РезультатТестирования)
`&НаКлиенте`
После выполнения всех тестов.

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

View File

@ -20,6 +20,15 @@
#Область Инициализация
// Подписка на это событие позволяет:
//
// * выполнить базовую настройку параметров запуска
// * эту настройку можно переопределить параметрами запуска (json файл с настройками)
// * может быть полезно при расширении возможностей движка новыми настраиваемыми механизмами
// * обработчик может (а точнее, должен) изменять `ПараметрыЗапуска`
//
// Параметры:
// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска
Процедура УстановитьПараметрыЗапускаПоУмолчанию(ПараметрыЗапуска) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(ПараметрыЗапуска);
@ -27,13 +36,12 @@
КонецПроцедуры
Процедура Инициализация(ПараметрыЗапуска) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(ПараметрыЗапуска);
ВызватьПодключаемыйОбработчикСобытия("Инициализация", "Инициализация", Параметры);
КонецПроцедуры
// Вызывается при первичной инициализации глобального контекста.
// Используется для первоначального заполнения контекста, параметра `ДанныеКонтекста`
// Вызывается и для сервера, и для клиента
//
// Параметры:
// ДанныеКонтекста - Структура
Процедура ИнициализацияКонтекста(ДанныеКонтекста) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(ДанныеКонтекста);
@ -41,6 +49,20 @@
КонецПроцедуры
// Вызывается после инициализации контекстов и загрузки настроек.
// Позволяет выполнить настройку различных механизмов движка.
//
// Важно: В этом обработчике нельзя менять параметр `ПараметрыЗапуска`.
//
// Параметры:
// ПараметрыЗапуска - см. ЮТФабрика.ПараметрыЗапуска
Процедура Инициализация(ПараметрыЗапуска) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(ПараметрыЗапуска);
ВызватьПодключаемыйОбработчикСобытия("Инициализация", "Инициализация", Параметры);
КонецПроцедуры
#КонецОбласти
#Область СобытияИсполненияТестов
@ -145,7 +167,7 @@
Процедура ПередВыполнениемТестов(ИсполняемыеМодули) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(ИсполняемыеМодули);
ВызватьПодключаемыйОбработчикСобытия("ПередВыполнениемТестов", "СобытияИсполненияТестов", Параметры);
ВызватьПодключаемыйОбработчикСобытия("ПередВыполнениемТестов", "ИсполнениеТестов", Параметры);
КонецПроцедуры
@ -156,7 +178,7 @@
Процедура ПослеВыполненияТестов(РезультатТестирования) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(РезультатТестирования);
ВызватьПодключаемыйОбработчикСобытия("ПослеВыполненияТестов", "СобытияИсполненияТестов", Параметры);
ВызватьПодключаемыйОбработчикСобытия("ПослеВыполненияТестов", "ИсполнениеТестов", Параметры);
КонецПроцедуры
@ -165,6 +187,7 @@
#Область СобытияЗагрузкиТестов
// Обработка события "ПередЧтениеСценариев"
// Вызывается перед загрузкой тестов.
Процедура ПередЧтениеСценариев() Экспорт
Параметры = Новый Массив();
@ -173,7 +196,9 @@
КонецПроцедуры
// Обработчик события "ПередЧтениемСценариевМодуля"
// Позволяет настроить базовые параметры перед чтением настроек тестов модуля
// Вызывается перед чтением сценариев конкретного модуля (вызовом метода `ИсполняемыеСценарии`).
// Позволяет настроить базовые параметры перед чтением настроек тестов модуля.
//
// Параметры:
// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
Процедура ПередЧтениемСценариевМодуля(МетаданныеМодуля) Экспорт
@ -187,7 +212,7 @@
// Позволяет настроить/обработать параметры загруженных настроек тестов модуля
// Параметры:
// МетаданныеМодуля - см. ЮТФабрикаСлужебный.ОписаниеМодуля
// ИсполняемыеСценарии - см. ЮТТесты.СценарииМодуля
// ИсполняемыеСценарии - см. ЮТТестыСлужебный.СценарииМодуля
Процедура ПослеЧтенияСценариевМодуля(МетаданныеМодуля, ИсполняемыеСценарии) Экспорт
Параметры = ЮТКоллекции.ЗначениеВМассиве(МетаданныеМодуля, ИсполняемыеСценарии);
@ -251,7 +276,7 @@
Если ПропуститьОбработчикТестовогоМодуля Тогда
Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия);
Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "СобытияИсполненияТестов", Параметры);
Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры);
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
Иначе
ВызватьОбработкуСобытияИсполненияТестов(ИмяСобытия, ОписаниеСобытия);
@ -266,11 +291,11 @@
Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия);
Если ЭтоСобытиеПеред(ИмяСобытия) Тогда
Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "СобытияИсполненияТестов", Параметры);
Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры);
ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия);
Иначе
ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия);
Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "СобытияИсполненияТестов", Параметры);
Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры);
КонецЕсли;
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);

View File

@ -20,7 +20,7 @@
<configurationExtensionCompatibilityMode>8.3.10</configurationExtensionCompatibilityMode>
<configurationExtensionPurpose>AddOn</configurationExtensionPurpose>
<scriptVariant>Russian</scriptVariant>
<version>24.03</version>
<version>24.04</version>
<languages uuid="b8fdae66-bc14-47de-9a8d-e0323e0d9ce8">
<name>Русский</name>
<objectBelonging>Adopted</objectBelonging>

View File

@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Subsystem xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="5d7cb216-f07c-48e3-8a0f-674ac9cca6f0">
<name>СобытияИсполненияТестов</name>
<name>ИсполнениеТестов</name>
<synonym>
<key>ru</key>
<value>События исполнения тестов</value>
<value>Исполнение тестов</value>
</synonym>
<includeHelpInContents>true</includeHelpInContents>
<content>CommonModule.МокитоСлужебный</content>

View File

@ -13,6 +13,6 @@
<content>CommonModule.ЮТЛогированиеСлужебный</content>
<subsystems>ЗагрузкаТестов</subsystems>
<subsystems>Инициализация</subsystems>
<subsystems>СобытияИсполненияТестов</subsystems>
<subsystems>ИсполнениеТестов</subsystems>
<parentSubsystem>Subsystem.ЮТПодключаемыеМодули</parentSubsystem>
</mdclass:Subsystem>