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:
commit
dc1fe2173b
34
documentation/blog/2024/05/07-engine-release.md
Normal file
34
documentation/blog/2024/05/07-engine-release.md
Normal 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)
|
@ -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 исполняемых теста (для сервера и для клиента)
|
||||
|
||||
### ИсполнениеТестов
|
||||
|
||||
#### ПередВыполнениемТестов(ИсполняемыеМодули)
|
||||
|
||||
`&НаКлиенте`
|
||||
|
||||
Перед запуском всех тестов.
|
||||
|
||||
#### ПередВсемиТестамиМодуля(ОписаниеСобытия)
|
||||
|
||||
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
|
||||
|
||||
Смотрите описание [выше](#события-тестов)
|
||||
|
||||
#### ПередТестовымНабором(ОписаниеСобытия)
|
||||
|
||||
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
|
||||
|
||||
Смотрите описание [выше](#события-тестов)
|
||||
|
||||
#### ПередКаждымТестом(ОписаниеСобытия)
|
||||
|
||||
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
|
||||
|
||||
Смотрите описание [выше](#события-тестов)
|
||||
|
||||
#### ПослеКаждогоТеста(ОписаниеСобытия)
|
||||
|
||||
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
|
||||
|
||||
Смотрите описание [выше](#события-тестов)
|
||||
|
||||
#### ПослеТестовогоНабора(ОписаниеСобытия)
|
||||
|
||||
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
|
||||
|
||||
Смотрите описание [выше](#события-тестов)
|
||||
|
||||
#### ПослеВсехТестовМодуля(ОписаниеСобытия)
|
||||
|
||||
`&НаКлиенте`/`&НаСервере` в зависимости от доступности модуля.
|
||||
|
||||
Смотрите описание [выше](#события-тестов)
|
||||
|
||||
#### ПослеВыполненияТестов(РезультатТестирования)
|
||||
|
||||
`&НаКлиенте`
|
||||
|
||||
После выполнения всех тестов.
|
||||
|
BIN
documentation/docs/features/images/test-settings-events-tree.png
Normal file
BIN
documentation/docs/features/images/test-settings-events-tree.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 42 KiB |
@ -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 @@
|
||||
Параметры = ЮТКоллекции.ЗначениеВМассиве(ОписаниеСобытия);
|
||||
|
||||
Если ЭтоСобытиеПеред(ИмяСобытия) Тогда
|
||||
Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "СобытияИсполненияТестов", Параметры);
|
||||
Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры);
|
||||
ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия);
|
||||
Иначе
|
||||
ВызватьОбработчикТестовогоМодуля(ИмяСобытия, ОписаниеСобытия);
|
||||
Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "СобытияИсполненияТестов", Параметры);
|
||||
Ошибки = ВызватьПодключаемыйОбработчикСобытия(ИмяСобытия, "ИсполнениеТестов", Параметры);
|
||||
КонецЕсли;
|
||||
|
||||
ЗарегистрироватьОшибкиСобытияИсполнения(ИмяСобытия, ОписаниеСобытия, Ошибки);
|
||||
|
@ -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>
|
||||
|
@ -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>
|
@ -13,6 +13,6 @@
|
||||
<content>CommonModule.ЮТЛогированиеСлужебный</content>
|
||||
<subsystems>ЗагрузкаТестов</subsystems>
|
||||
<subsystems>Инициализация</subsystems>
|
||||
<subsystems>СобытияИсполненияТестов</subsystems>
|
||||
<subsystems>ИсполнениеТестов</subsystems>
|
||||
<parentSubsystem>Subsystem.ЮТПодключаемыеМодули</parentSubsystem>
|
||||
</mdclass:Subsystem>
|
||||
|
Loading…
Reference in New Issue
Block a user