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

doc: описание дымовых тестов

This commit is contained in:
alkoleft 2024-08-27 10:41:37 +03:00
parent cd959453c3
commit 965a1f5044
4 changed files with 153 additions and 42 deletions

View File

@ -0,0 +1,113 @@
# Дымовые тесты
В YAxUnit реализована поддержка дымовых тестов.
:::warning Черновая реализация
Реализация дымовых тестов может быть изменена.
:::
Возможности:
* Тестирование открытия форм:
* Нового элемента
* Существующего элемента
* Скопированного элемента
## Запуск
Для запуска дымовых тестов необходимо:
1. Добавить расширение `smoke.cfe`
2. Создать файл настроек
3. Запустить 1С:Предприятие и открыть обработку "Юнит-тесты"
4. Загрузить настройки и перезагрузить тесты.
5. Запустить тесты.
## Файл настроек
| Имя параметра | Тип | Значение по умолчанию | Описание |
|----------------|-------------------|-----------------------|-------------------------------------------------------------------|
| `Использовать` | `boolean` | `false` | Использование дымовых тестов |
| `ОткрытиеФорм` | `Object\|boolean` | `false` | [Настройка тестов открытия форм](#настройка-тестов-открытия-форм) |
### Настройка тестов открытия форм
| Имя параметра | Тип | Значение по умолчанию | Описание |
|--------------------------|-------------------|-----------------------|-----------------------------------------------------|
| `Использовать` | `boolean` | `false` | Использование тестов открытия форм |
| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов |
| `<Имя типа теста>` | `Object\|boolean` | `true` | [Настройка типа теста](#настройка-типа-теста) |
| `<Имя вида метаданного>` | `Object\|boolean` | `true` | Настройка тестирования для вида объектов метаданных |
#### Настройка типа теста
Доступные следующие типы тестов открытия форм:
* `Новый` - открытие формы - открытие формы **нового** элемента элемента
* `Существующий` - открытие формы **существующего** элемента
* `Скопированный` - открытие формы **скопированного** элемента
* `Список` - открытие формы **списка**
* `Выбор` - открытие формы **выбора**
Для каждого из типов можно указать свои настройки
| Имя параметра | Тип | Значение по умолчанию | Описание |
|----------------|-----------------|-----------------------|-------------------------------------------|
| `Использовать` | `boolean` | `false` | Использование типа тестов открытия форм |
| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов для типа теста |
#### Настройка вида метаданных
Для каждого вида метаданных можно указать свои настройки. В качестве ключа используется имя вида метаданных (Справочник, Справочники, Catalog, Catalogs).
Есть возможность выключить или задать исключаемые объекты.
| Имя параметра | Тип | Значение по умолчанию | Описание |
|----------------|-----------------|-----------------------|------------------------------------------------------|
| `Использовать` | `boolean` | `false` | Использование вида метаданных в тестах открытия форм |
| `Исключения` | `Array\|String` | `Null` | Имена исключаемых объектов вида метаданных |
## Примеры настроек
Настройка для запуска/загрузки дымовых тестов открытия форм
```json title="Дымовые тесты.json"
{
"filter": {
"extensions": ["smoke"] // Загрузка тестов из расширения дымовых тестов
},
"showReport": true,
// Настройка дымовых тестов
"ДымовыеТесты": {
"Использовать": true, // Включение дымовых тестов
"ОткрытиеФорм": true // Использование тестов открытия форм
}
}
```
Настройка исключений
```json title="Исключения.json"
{
"filter": {
"extensions": ["smoke"] // Загрузка тестов из расширения дымовых тестов
},
// Настройка дымовых тестов
"ДымовыеТесты": {
"Использовать": true,
"ОткрытиеФорм": {
"Использовать": true,
"БизнесПроцессы": false, // Отключение проверки бизнес процессов
"Исключения": "Удалить_*", // Отключение проверки для объектов, название которых начинается с "Удалить_"
"Документы": {
"Исключения": [
"ПКО", "РКО" // Отключение проверки документов ПКО и РКО
]
},
"Скопированный": false, // Отключение текстов открытия скопированного элемента,
"Новый": {
"Исключения": ["Номенклатура"] // Исключение номенклатуры из тестов открытия нового элемента
}
}
}
}
```

View File

@ -170,7 +170,7 @@ const config = {
prism: {
theme: prismThemes.vsLight,
darkTheme: prismThemes.vsDark,
additionalLanguages: ['bsl'],
additionalLanguages: ['bsl', 'json'],
},
}),
markdown: {

View File

@ -20,13 +20,11 @@
Процедура ИсполняемыеСценарии() Экспорт
// Настройки = Настройки();
//
// Если НЕ Настройки.Использовать Тогда
// Возврат;
// КонецЕсли;
Настройки = НастройкиПоУмолчанию();
Настройки.Использовать = Истина;
Настройки = Настройки();
Если НЕ Настройки.Использовать Тогда
Возврат;
КонецЕсли;
ЮТТесты.ВТранзакции().УдалениеТестовыхДанных();
@ -37,7 +35,7 @@
Для Каждого ВладелецФорм Из ВладельцыФорм Цикл
Если НЕ ВладелецФорм.Просмотр Тогда
Если НЕ ВладелецФорм.Просмотр Тогда
Продолжить;
КонецЕсли;
@ -60,28 +58,6 @@
КонецПроцедуры
Функция ОтборМетаданных(Настройки)
Отбор = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки();
ТипыМетаданных = ЮТМетаданные.ТипыМетаданных();
Отбор.Исключения = Настройки.Исключения;
Для Каждого Элемент Из Настройки Цикл
Если ТипыМетаданных.Свойство(Элемент.Ключ) Тогда
ОтборТипаМетаданных = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки();
ОтборТипаМетаданных.Использовать = Элемент.Значение.Использовать;
ОтборТипаМетаданных.Исключения = Элемент.Значение.Исключения;
Отбор.Вставить(Элемент.Ключ, ОтборТипаМетаданных);
КонецЕсли;
КонецЦикла;
Возврат Отбор;
КонецФункции
Процедура Инициализация(ПараметрыЗапуска) Экспорт
ЗагружаемыеНастройки = ЮТДымовыеТестыСлужебныйКлиентСервер.ЗагружаемаяНастройкаДымовогоТеста(ПараметрыЗапуска, "ОткрытиеФорм");
@ -106,11 +82,11 @@
ОписаниеФормы.ТипФормы = "ФормаГруппы";
Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда
Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда
ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "новой группы");
ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Скопированный, "скопированной группы");
КонецЕсли;
Если ОписаниеОбъектаМетаданных.Редактирование Тогда
Если ОписаниеОбъектаМетаданных.Редактирование Тогда
ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "редактирование существующей группы");
Иначе
ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "просмотр существующей группы");
@ -119,11 +95,11 @@
ИначеЕсли ОписаниеФормы.ЭтоФормаОбъекта Тогда
ОписаниеФормы.ТипФормы = "ФормаОбъекта";
Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда
Если ОписаниеОбъектаМетаданных.ИнтерактивноеДобавление Тогда
ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Новый, "нового объекта");
ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Скопированный, "скопированного объекта");
КонецЕсли;
Если ОписаниеОбъектаМетаданных.Редактирование Тогда
Если ОписаниеОбъектаМетаданных.Редактирование Тогда
ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "редактирование существующего объекта");
Иначе
ЗарегистрироватьТест(Настройки, ОписаниеФормы, ТипыТестов.Существующий, "просмотр существующего объекта");
@ -155,7 +131,7 @@
Возврат (Настройки.Свойство(ТипТеста, НастройкаТипаТеста) И НЕ НастройкаТипаТеста.Использовать)
Или (Настройки.Свойство(ТипМетаданного, НастройкаТипаМетаданных)
И НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста)
И НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста)
И НЕ НастройкаТипаТеста.Использовать);
КонецФункции
@ -168,7 +144,7 @@
НастройкаТипаМетаданных.Свойство(ТипТеста, НастройкаТипаТеста);
КонецЕсли;
Возврат НастройкаТипаТеста <> Неопределено И
Возврат НастройкаТипаТеста <> Неопределено И
ЮТДымовыеТестыСлужебныйКлиентСервер.ПодходитПодИсключения(ОписаниеФормы.Владелец.Имя, НастройкаТипаТеста.Исключения);
КонецФункции
@ -188,6 +164,28 @@
КонецПроцедуры
Функция ОтборМетаданных(Настройки)
Отбор = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки();
ТипыМетаданных = ЮТМетаданные.ТипыМетаданных();
Отбор.Исключения = Настройки.Исключения;
Для Каждого Элемент Из Настройки Цикл
Если ТипыМетаданных.Свойство(Элемент.Ключ) Тогда
ОтборТипаМетаданных = ЮТДымовыеТесты.БазовоеОписаниеЭлементаНастройки();
ОтборТипаМетаданных.Использовать = Элемент.Значение.Использовать;
ОтборТипаМетаданных.Исключения = Элемент.Значение.Исключения;
Отбор.Вставить(Элемент.Ключ, ОтборТипаМетаданных);
КонецЕсли;
КонецЦикла;
Возврат Отбор;
КонецФункции
#Область Тесты
Процедура ОткрытьФорму_Новый(ОписаниеФормы) Экспорт
@ -244,7 +242,7 @@
КонецПроцедуры
Процедура ОткрытьЗакрытьФорму(ОбъектМетаданных, ИмяФормы, Ключ = Неопределено)
Процедура ОткрытьЗакрытьФорму(ОбъектМетаданных, ИмяФормы, Ключ = Неопределено)
ПолноеИмяФормы = СтрШаблон("%1.%2.%3", ОбъектМетаданных.Тип, ОбъектМетаданных.Имя, ИмяФормы);
ЮТЛогирование.Отладка("Открытие формы: " + ПолноеИмяФормы);
@ -319,7 +317,6 @@
КонецФункции
#КонецОбласти
#Область ЗагрузкаНастроек
@ -339,10 +336,10 @@
Если ЭтоБазоваяНастройка Тогда
Продолжить;
ИначеЕсли ТипыТестов.Свойство(Элемент.Ключ) Тогда
ИначеЕсли ТипыТестов.Свойство(Элемент.Ключ) Тогда
Настройка = НастройкаТипаТеста(Элемент.Значение, Путь + "." + Элемент.Ключ);
НастройкиТестов.Вставить(Элемент.Ключ, Настройка);
ИначеЕсли ЮТМетаданные.ТипыМетаданных().Свойство(Элемент.Ключ) Тогда
ИначеЕсли ЮТМетаданные.ТипыМетаданных().Свойство(Элемент.Ключ) Тогда
ПрочитатьНастройкиТипаМетаданных(НастройкиТестов, Элемент.Ключ, Элемент.Значение, Путь);
КонецЕсли;
@ -369,7 +366,7 @@
Если ЭтоБазоваяНастройка Тогда
Продолжить;
ИначеЕсли ТипыТестов.Свойство(Элемент.Ключ) Тогда
ИначеЕсли ТипыТестов.Свойство(Элемент.Ключ) Тогда
Настройка = НастройкаТипаТеста(Элемент.Значение, Путь + "." + Элемент.Ключ);
НастройкиТипаМетаданных.Вставить(Элемент.Ключ, Настройка);
КонецЕсли;

View File

@ -18,6 +18,7 @@
<configurationExtensionCompatibilityMode>8.3.10</configurationExtensionCompatibilityMode>
<configurationExtensionPurpose>AddOn</configurationExtensionPurpose>
<scriptVariant>Russian</scriptVariant>
<version>0.2.1</version>
<subsystems>Subsystem.ДТ_ЮТПодключаемыеМодули</subsystems>
<commonModules>CommonModule.ДТОткрытиеФорм</commonModules>
</mdclass:Configuration>