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

doc: документация по дымовым тестам

This commit is contained in:
alkoleft 2024-09-03 23:38:37 +03:00
parent f6cef7f4c8
commit b0243eee2e
3 changed files with 225 additions and 62 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

View File

@ -22,13 +22,6 @@
## Файл настроек
| Имя параметра | Тип | Значение по умолчанию | Описание |
|----------------|-------------------|-----------------------|-------------------------------------------------------------------|
| `Использовать` | `boolean` | `false` | Использование дымовых тестов |
| `ОткрытиеФорм` | `Object\|boolean` | `false` | [Настройка тестов открытия форм](opening-forms.md#настройки) |
## Примеры настроек
Настройка для запуска/загрузки дымовых тестов открытия форм
```json title="Дымовые тесты.json"
@ -44,3 +37,8 @@
}
}
```
| Имя параметра | Тип | Значение по умолчанию | Описание |
|----------------|-------------------|-----------------------|-------------------------------------------------------------------|
| `Использовать` | `boolean` | `false` | Использование дымовых тестов |
| `ОткрытиеФорм` | `Object\|boolean` | `false` | [Настройка тестов открытия форм](opening-forms.md#настройки) |

View File

@ -2,76 +2,241 @@
## Возможности
* Нового элемента
* Существующего элемента
* Скопированного элемента
Дымовые тесты открытия форм, позволяют проверить, что все основные формы решения открываются, не выбрасывая исключений.
![Список дымовых тестов](images/smoke-tests-list.png)
:::caution
Формы открываются в том же сеансе. Менеджер и клиент тестирования не используется.
:::
### Виды тестов
Реализованно несколько видов тестов открытия форм
* `Новый` - Открывает форму **нового** объекта.
* `НоваяГруппа` - Открывает форму **новой группы**.
* `Существующий` - Открывает форму **существующего** объекта.
* `СуществующаяГруппа` - Открывает форму **существующей группы**.
* `Скопированный` - Открывает форму **скопированного** объект.
* `СкопированнаяГрупп` - Открывает форму **скопированной группы**.
* `Список` - Открывает форму **списка**.
* `Выбор` - Открывает форму **выбора**.
* `ВыборГруппы` - Открывает форму **выбора группы**.
* `Основная` - Открывает форму **основная**, для отчетов и обработок.
* `Настройки` - Открывает форму **настройки отчета**.
* `Варианты` - Открывает форму **выбора варианта**.
### Объекты метаданных
Поддерживается большинство объектов метаданных
| Имя | Новый | НоваяГруппа | Существующий | СуществующаяГруппа | Скопированный | СкопированнаяГруппа | Список | Выбор | ВыборГруппы | Основная | Настройки | Варианты |
|-------------------------|-------|-------------|--------------|--------------------|---------------|---------------------|--------|-------|-------------|----------|-----------|----------|
| Справочники | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | |
| Документы | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | |
| ПланыВидовХарактеристик | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | |
| ПланыСчетов | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | |
| ПланыВидовРасчета | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | |
| ПланыОбмена | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | |
| БизнесПроцессы | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | |
| Задачи | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | |
| РегистрыСведений | ✓ | | ✓ | | ✓ | | ✓ | ✓ | | | | |
| РегистрыНакопления | | | ✓ | | | | ✓ | ✓ | | | | |
| РегистрыБухгалтерии | | | ✓ | | | | ✓ | ✓ | | | | |
| РегистрыРасчета | | | ✓ | | | | ✓ | ✓ | | | | |
| Перечисления | | | | | | | ✓ | ✓ | | | | |
| Отчеты | | | | | | | | | | ✓ | ✓ | ✓ |
| Обработки | | | | | | | | | | ✓ | | |
### Учет прав
При формировании списка тестов учитываются права доступа текущего пользователя, что позволит выполнить тестирование для разных ролевых моделей
| Вид теста | Необходимое право | Используемая форма |
|---------------------|-------------------------|--------------------|
| Новый | ИнтерактивноеДобавление | ФормаОбъекта |
| НоваяГруппа | ИнтерактивноеДобавление | ФормаГруппы |
| Существующий | Просмотр | ФормаОбъекта |
| СуществующаяГруппа | Просмотр | ФормаГруппы |
| Скопированный | Редактирование | ФормаОбъекта |
| СкопированнаяГруппа | Редактирование | ФормаГруппы |
| Список | Просмотр | ФормаСписка |
| Выбор | Просмотр | ФормаВыбора |
| ВыборГруппы | Просмотр | ФормаВыбораГруппы |
| Основная | Просмотр | Форма |
| Настройки | Просмотр | ФормаНастроек |
| Варианты | Просмотр | ФормаВарианта |
### Учет настроек конфигурации
Учитываются настройки конфигурации для определения открываемой формы
* Режим запуска предприятия - для тонкого клиента доступны только управляемые формы
* Свойство конфигурации `ИспользоватьОбычныеФормыВУправляемомПриложении`
* Свойство конфигурации `ИспользоватьУправляемыеФормыВОбычномПриложении`
* Для обычного приложения приоритет имеет обычная форма
* Для управляемого приложения приоритет имеет управляемая форма
### Фильтрация
Имеются различные настройки для фильтрации/исключения тестов/форм
* Фильтр по коллекциям метаданных (`Справочники`, `Документы`, `Регистры` и тд)
* Фильтр по типу формы - `ОбычныеФормы`, `УправляемыеФормы`
* Фильтр по объектам метаданных с возможностью использовать шаблоны со звездочкой (например, `Удалить_*`)
* Фильтр по видам тестов
### Перехват исключений
При запуске на 1С:Предприятие версии 8.3.17.1091 или больше будет выполняться автоматический перехват и обработка исключения используя [механизм отображения ошибок](https://wonderland.v8.1c.ru/blog/razvitie-mekhanizma-otobrazheniya-oshibok/).
## Настройки
### Настройка тестов открытия форм
Настройки имеют древовидную структуру:
| Имя параметра | Тип | Значение по умолчанию | Описание |
|--------------------------|-------------------|-----------------------|-----------------------------------------------------|
| `Использовать` | `boolean` | `false` | Использование тестов открытия форм |
| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов |
| `<Имя типа теста>` | `Object\|boolean` | `true` | [Настройка типа теста](#настройка-типа-теста) |
| `<Имя вида метаданного>` | `Object\|boolean` | `true` | Настройка тестирования для вида объектов метаданных |
```plain
└─ ДымовыеТесты // Уровень 0
└─ ОткрытиеФорм // Уровень 1
└─ [Имя вида метаданного] Справочники, Документы и тд // Уровень 2
└─ [Имя объекта метаданного] Номенклатура, Заказ, Остатки // Уровень 3
#### Настройка типа теста
```
Доступные следующие типы тестов открытия форм:
На каждом уровне настроек тестов открытия форм (начиная с уровня 1) можно устанавливать параметры,
которые распространятся на нижние уровни, при этом на нижем уровне можно их переопределить.
Кроме настройки `Использовать`, она сразу прерывает анализ ветки, а также `Исключения` - они дополняются.
* `Новый` - открытие формы - открытие формы **нового** элемента элемента
* `Существующий` - открытие формы **существующего** элемента
* `Скопированный` - открытие формы **скопированного** элемента
* `Список` - открытие формы **списка**
* `Выбор` - открытие формы **выбора**
Например, необходимо отключить тесты обычных форм кроме справочника номенклатура, тогда настройка будет выглядеть так:
Для каждого из типов можно указать свои настройки
| Имя параметра | Тип | Значение по умолчанию | Описание |
|----------------|-----------------|-----------------------|-------------------------------------------|
| `Использовать` | `boolean` | `false` | Использование типа тестов открытия форм |
| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов для типа теста |
#### Настройка вида метаданных
Для каждого вида метаданных можно указать свои настройки. В качестве ключа используется имя вида метаданных (Справочник, Справочники, Catalog, Catalogs).
Есть возможность выключить или задать исключаемые объекты.
| Имя параметра | Тип | Значение по умолчанию | Описание |
|----------------|-----------------|-----------------------|------------------------------------------------------|
| `Использовать` | `boolean` | `false` | Использование вида метаданных в тестах открытия форм |
| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов вида метаданных |
## Примеры
Настройка исключений
```json title="Исключения.json"
```json
{
"filter": {
"extensions": ["smoke"] // Загрузка тестов из расширения дымовых тестов
},
// Настройка дымовых тестов
"ДымовыеТесты": {
"Использовать": true,
"ОткрытиеФорм": {
"Использовать": true,
"БизнесПроцессы": false, // Отключение проверки бизнес процессов
"Исключения": "Удалить_*", // Отключение проверки для объектов, название которых начинается с "Удалить_"
"Документы": {
"ПКО": false, // Отключение проверки ПКО
"РКО": false, // Отключение проверки РКО
"Заказ": {
"Новый": false // Отключение проверки открытия нового заказа
}
},
"ОбычныеФормы": false, // Отключение тестов обычных форм
"Справочники": {
"ОбычныеФормы": false
},
"Скопированный": false, // Отключение текстов открытия скопированного элемента,
"Номенклатура": {
"ОбычныеФормы": true // Включение тестов обычных форм для справочника Номенклатура
}
}
}
}
}
```
Еще одна особенностью настроек - для отключения/включения какой-то настройки необязательно создавать объект с реквизитом `Использовать`, можно сразу присвоить булевое значение.
Например:
```json
{
"ДымовыеТесты": {
"Использовать": true,
"ОткрытиеФорм": {
"Использовать": true,
"Справочники": false, // Отключение проверки справочников
"Документы": {
"Заказ": false // Отключение проверки документа Заказ
}
}
}
}
```
### Настройка тестов открытия форм
| Имя параметра | Тип | Значение по умолчанию | Описание |
|--------------------------|-------------------|-----------------------|----------------------------------------------------------------------------------------------------|
| `Использовать` | `boolean` | `false` | Использование тестов открытия форм |
| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов, возможно использование шаблонов со звездочкой |
| `ОбычныеФормы` | `boolean` | `true` | Использование обычных форм |
| `УправляемыеФормы` | `boolean` | `true` | Использование управляемых форм |
| `<Имя вида метаданного>` | `Object\|boolean` | `true` | [Настройка тестирования](#настройка-тестов-коллекции-метаданных) для коллекции объектов метаданных |
| `<Имя вида теста>` | `boolean` | `true` | Позволяет глобально включать и выключать [виды тестов](#виды-тестов). |
### Настройка тестов коллекции метаданных
| Имя параметра | Тип | Значение по умолчанию | Описание |
|-----------------------------|-------------------|-----------------------|---------------------------------------------------------------------------------------------------|
| `Использовать` | `boolean` | `true` | Использование тестов для указанной коллекции метаданных |
| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов, возможно использование шаблонов со звездочкой |
| `ОбычныеФормы` | `boolean` | `true` | Использование обычных форм |
| `УправляемыеФормы` | `boolean` | `true` | Использование управляемых форм |
| `<Имя объекта метаданного>` | `Object\|boolean` | `true` | [Настройка тестирования](#настройка-тестов-объекта-метаданных) для конкретного объекта метаданных |
| `<Имя вида теста>` | `boolean` | `true` | Позволяет включать и выключать [виды тестов](#виды-тестов) для коллекции метаданных |
### Настройка тестов объекта метаданных
| Имя параметра | Тип | Значение по умолчанию | Описание |
|--------------------------|-----------|-----------------------|---------------------------------------------------------------------------------|
| `Использовать` | `boolean` | `true` | Использование тестов для объекта метаданных |
| `ОбычныеФормы` | `boolean` | `true` | Использование обычных форм |
| `УправляемыеФормы` | `boolean` | `true` | Использование управляемых форм |
| `<Имя конкретной формы>` | `boolean` | `true` | Выключение использования конкретной формы |
| `<Имя вида теста>` | `boolean` | `true` | Позволяет включать и выключать [виды тестов](#виды-тестов) для текущего объекта |
## Примеры
Базовая настройка
```json title="БазоваяНастройка.json"
{
"filter": {
"extensions": ["smoke"] // Фильтр по расширению с дымовыми тестами
},
"ДымовыеТесты": {
"Использовать": true, // Включение дымовых тестов
"ОткрытиеФорм": {
"Исключения": "ЮТ*", // Исключение объектов YAxUnit
"Использовать": true // Включение дымовых тестов открытия форм
}
}
}
```
Варианты настроек исключений
```json title="Исключения.json"
{
"filter": {
"extensions": ["smoke"] // Фильтр по расширению с дымовыми тестами
},
"ДымовыеТесты": {
"Использовать": true, // Включение дымовых тестов
"ОбычныеФормы": false,
"ОткрытиеФорм": {
"Использовать": true, // Включение дымовых тестов открытия форм
"Исключения": [
"ЮТ*", // Исключение объектов YAxUnit
"Удалить_*" // Исключение объектов, название которых начинается с "Удалить_"
],
"Скопированный": false, // Отключение тестов открытия скопированного элемента
"Перечисления": false, // Отключение тестов открытия форма перечислений
"Документы": { // Настройка для документов
"Скопированный": true, // Включение тестов открытия скопированного документа
"Заказ": { // Настройка для документа Заказ
"Новый": false // Отключение тестов открытия нового элемента
},
"ОперацияПоУчетуТоваров": false, // Отключение тестов для документа ОперацияПоУчетуТоваров
"Оплата": {
"ФормаДокумента": false // Отключение тестов для конкретной формы ФормаДокумента
},
"ПоступлениеДенег": {
"УправляемыеФормы": false, // Отключение тестов для управляемых форм объекта
"ОбычныеФормы": true // Включение тестов для управляемых форм объекта
},
"ПриходТовара": {
"ФормаОбъекта": false // Отключение тестов для вида формы ФормаОбъекта
},
},
"Справочники": {
"Контрагенты": {
"Скопированный": true // Включение тестов открытия скопированного справочника контрагенты
}
}
}
}
}
```