Skip to content

Commit

Permalink
Merge branch 'master' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
alkoleft committed May 7, 2024
2 parents 1e4a7d8 + e51c92b commit dc1fe21
Show file tree
Hide file tree
Showing 8 changed files with 254 additions and 17 deletions.
34 changes: 34 additions & 0 deletions documentation/blog/2024/05/07-engine-release.md
Original file line number Diff line number Diff line change
@@ -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)
178 changes: 178 additions & 0 deletions documentation/docs/features/events.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 исполняемых теста (для сервера и для клиента)

### ИсполнениеТестов

#### ПередВыполнениемТестов(ИсполняемыеМодули)

`&НаКлиенте`

Перед запуском всех тестов.

#### ПередВсемиТестамиМодуля(ОписаниеСобытия)

`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.

Смотрите описание [выше](#события-тестов)

#### ПередТестовымНабором(ОписаниеСобытия)

`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.

Смотрите описание [выше](#события-тестов)

#### ПередКаждымТестом(ОписаниеСобытия)

`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.

Смотрите описание [выше](#события-тестов)

#### ПослеКаждогоТеста(ОписаниеСобытия)

`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.

Смотрите описание [выше](#события-тестов)

#### ПослеТестовогоНабора(ОписаниеСобытия)

`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.

Смотрите описание [выше](#события-тестов)

#### ПослеВсехТестовМодуля(ОписаниеСобытия)

`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.

Смотрите описание [выше](#события-тестов)

#### ПослеВыполненияТестов(РезультатТестирования)

`&НаКлиенте`

После выполнения всех тестов.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit dc1fe21

Please # to comment.