1
0
mirror of https://github.com/firstBitSportivnaya/PSSL.git synced 2024-11-21 17:56:47 +02:00

Добавлены тесты YaxUnit и Vanessa (#51)

Добавлены тесты YaxUnit и Vanessa Automation, настроены шаги сборки, добавлено руководство по добавлению юнит-тестов
This commit is contained in:
Stepan 2024-05-06 12:55:42 +03:00 committed by GitHub
parent 84d74ace58
commit 45faad37f8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
546 changed files with 31080 additions and 32 deletions

6
.gitignore vendored
View File

@ -1,5 +1,5 @@
src/ConfigDumpInfo.xml ConfigDumpInfo.xml
src/dumplist.txt dumplist.txt
.vscode .vscode
/.metadata/ /.metadata/
/.scannerwork/ /.scannerwork/

View File

@ -32,5 +32,11 @@
## Информация для контрибьюторов ## Информация для контрибьюторов
### Версия платформы и режим совместимости
> Разработка ведется на версии 8.3.23 > Разработка ведется на версии 8.3.23
> Режим совместимости 8.3.18 > Режим совместимости 8.3.18
### Руководство контрибьютора
1. [Руководство по написанию юнит-тестов YaXUnit](docs/РуководствоПоНаписаниюТестовYAxUnit.md)

View File

@ -0,0 +1,86 @@
# Руководство по написанию тестов YAxUnit
## Шаг 1: Клонирование репозитория
Для начала работы вам необходимо клонировать репозиторий с GitHub. Вы можете сделать это, выполнив следующую команду в Git:
```bash
git clone https://github.com/firstBitSportivnaya/PSSL.git
```
## Шаг 2: Загрузка конфигурации
После клонирования репозитория загрузите конфигурацию в информационную базу из каталога:
```bash
PSSL/src/cf/
```
## Шаг 3: Добавление расширения конфигурации
Далее необходимо добавить расширение конфигурации YAxUnit, используйте файлы из следующего каталога:
```bash
PSSL/src/cfe/YAXUnit
```
После добавления расширения в режиме 1С:Предприятие должна появиться панель управления YAxUnit, которая отображается в виде подсистемы.
## Шаг 4: Создание тестов
### Определение тестируемой функции
Допустим в вашей конфигурации есть общий модуль **__ОбщегоНазначенияВспомогательныеФункции** в котором есть функция определения четности числа:
```1C
Функция ЧетноеЧисло(Число) Экспорт
Возврат Число % 2 = 0;
КонецФункции
```
В данном примере рассмотрим написание тестов для этой функции.
### Составление тестового набора
Для начала необходимо составить тестовый набор для проверки функции, стараясь покрыть пограничные случаи:
| Число | Результат |
|-------|-------------|
| 2 | Четное |
| 1 | Нечетное |
| 0 | Четное |
| -1 | Нечетное |
| -2 | Четное |
| 100 | Четное |
| 99 | Нечетное |
### Создание модуля для тестов
Создайте новый модуль в расширении YAxUnit, который принято называть по названию объекта, в котором находится тестируемая функция. Для нашего случая это будет модуль **ОМ__ОбщегоНазначенияВспомогательныеФункции**.
### Написание теста
Теперь напишем сам тест, для этого внутри **ОМ__ОбщегоНазначенияВспомогательныеФункции** создаем процедуру **ИсполняемыеСценарии()**:
```1C
Процедура ИсполняемыеСценарии() Экспорт
// Создание группы тестов
ЮТТесты.ДобавитьТестовыйНабор("Проверка функции ЧетноеЧисло")
// Добавление конкретного теста в группу
.ДобавитьТест("ТестЧетноеЧисло")
// Передача параметров в тест
.СПараметрами(Новый Структура("Число, ОжидаемыйРезультат", 2, Истина))
.СПараметрами(Новый Структура("Число, ОжидаемыйРезультат", 1, Ложь))
.СПараметрами(Новый Структура("Число, ОжидаемыйРезультат", 0, Истина))
.СПараметрами(Новый Структура("Число, ОжидаемыйРезультат", -1, Ложь))
.СПараметрами(Новый Структура("Число, ОжидаемыйРезультат", -2, Истина))
.СПараметрами(Новый Структура("Число, ОжидаемыйРезультат", 100, Истина))
.СПараметрами(Новый Структура("Число, ОжидаемыйРезультат", 99, Ложь));
КонецПроцедуры
```
#### Структура процедуры ИсполняемыеСценарии()
Процедура обычно содержит вызовы методов для добавления тестов. Основной метод — **ДобавитьТестовыйНабор()**, который создает группу тестов. В каждую группу затем добавляются конкретные тесты с помощью метода **ДобавитьТест()**. Эти тесты могут иметь параметры, задаваемые через метод **СПараметрами()**.
#### Написание самого теста
Сам тест реализуется в отдельной процедуре, которая вызывается из **ИсполняемыеСценарии()** через **ДобавитьТест()**. В этой процедуре вы описываете логику тестирования.
Пример процедуры теста:
```1C
Процедура ТестЧетноеЧисло(Параметры) Экспорт
// Вызов тестируемой функции
Результат = __ОбщегоНазначенияВспомогательныеФункции.ЧетноеЧисло(Параметры.Число);
// Проверка результата
ЮТест.ОжидаетЧто(Результат).Равно(Параметры.ОжидаемыйРезультат);
КонецПроцедуры
```
Теперь при запуске конфигурации в режиме 1С:Предприятие, в подсистеме YAxUnit должен отобразиться наш тест.
Запускаем тест и видим результат его работы.
Полную и исчерпывающую информацию по работе с расширением можно найти в документации [YAXUnit](https://bia-technologies.github.io/yaxunit/).

View File

@ -0,0 +1,29 @@
#language: ru
@tree
Функционал: проверка установки пометки удаления
Контекст:
Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий
Сценарий: Проверка установки пометки удаления для элементов справочника Тип соответствия объектов ИБ
* Создание элемента
И В командном интерфейсе я выбираю 'Соответствие объектов ИБ' 'Тип соответствия объектов ИБ'
Тогда открылось окно 'Тип соответствия объектов ИБ'
И я нажимаю на кнопку с именем 'ФормаСоздать'
Тогда открылось окно 'Тип соответствия объектов ИБ (создание)'
И в поле с именем 'Наименование' я ввожу текст 'ВА_Тест'
И я нажимаю на кнопку с именем 'ФормаЗаписатьИЗакрыть'
* Установка пометки
И в таблице 'Список' я выделяю все строки
И я выбираю пункт контекстного меню с именем 'СписокКонтекстноеМенюУстановитьПометкуУдаления' на элементе формы с именем "Список"
Тогда открылось окно '1С:Предприятие'
И я нажимаю на кнопку с именем 'Button0'
* Снятие пометки
Когда открылось окно 'Тип соответствия объектов ИБ'
И в таблице 'Список' я выделяю все строки
И я выбираю пункт контекстного меню с именем 'СписокКонтекстноеМенюУстановитьПометкуУдаления' на элементе формы с именем "Список"
Тогда открылось окно '1С:Предприятие'
И я нажимаю на кнопку с именем 'Button0'

View File

@ -0,0 +1,30 @@
#language: ru
@tree
Функционал: ввод данных
Контекст:
Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий
Сценарий: Создание элемента справочника Тип соответствия объектов ИБ
* Создание элемента
И В командном интерфейсе я выбираю 'Соответствие объектов ИБ' 'Тип соответствия объектов ИБ'
Тогда открылось окно 'Тип соответствия объектов ИБ'
И я нажимаю на кнопку с именем 'ФормаСоздать'
Тогда открылось окно 'Тип соответствия объектов ИБ (создание)'
И в поле с именем 'Наименование' я ввожу текст 'ВА - Тест'
И в поле с именем 'ИдентификаторНастройки' я ввожу текст 'ВА - Тест'
И я нажимаю на кнопку с именем 'ФормаЗаписатьИЗакрыть'
И я жду закрытия окна 'Тип соответствия объектов ИБ (создание) *' в течение 20 секунд
* Проверка создания
Когда открылось окно 'Тип соответствия объектов ИБ'
И я нажимаю на кнопку с именем 'ФормаНайти'
Тогда открылось окно 'Найти'
И я меняю значение переключателя с именем 'CompareType' на 'По точному совпадению'
И я нажимаю на кнопку с именем 'Find'
Тогда открылось окно 'Тип соответствия объектов ИБ'
И в таблице "Список" я выбираю текущую строку
Тогда открылось окно 'ВА - Тест (Тип соответствия объектов ИБ)'
И Я закрываю окно 'ВА - Тест (Тип соответствия объектов ИБ)'

View File

@ -1,35 +1,33 @@
{ {
"$schema": "https://raw.githubusercontent.com/firstBitMarksistskaya/jenkins-lib/feature-telegram/resources/schema.json", "$schema": "https://raw.githubusercontent.com/firstBitMarksistskaya/jenkins-lib/develop/resources/schema.json",
"stages": { "stages": {
"initSteps": true, "initSteps": true,
"syntaxCheck": true, "syntaxCheck": true,
"smoke": true, "smoke": true,
"sonarqube": true, "yaxunit": true,
"telegram": true "telegram": true,
}, "bdd": true
"timeout": {
"smoke": 300,
"bdd": 180,
"createInfoBase": 120,
"designerToEdtFormatTransformation": 120,
"edtToDesignerFormatTransformation": 120,
"edtValidate": 300,
"initInfoBase": 120,
"resultTransformation": 60,
"sonarqube": 150,
"syntaxCheck": 300,
"zipInfoBase": 120
}, },
"sourceFormat": "designer", "sourceFormat": "designer",
"srcDir": "src", "srcDir": "src/cf",
"resultsTransform": {
"removeSupport": false
},
"sonarqube": {
"waitForQualityGate": true
},
"initInfobase": { "initInfobase": {
"initMethod": "fromSource" "initMethod": "fromSource",
"extensions": [
{
"name": "YAXUnit",
"initMethod": "fromSource",
"path": "src/cfe/YAXUnit",
"stages": ["yaxunit"]
}
]
},
"smoke": {
"publishToAllureReport": false,
"publishToJUnitReport": true
},
"yaxunit": {
"publishToAllureReport": false,
"publishToJUnitReport": true
}, },
"notifications": { "notifications": {
"telegram": { "telegram": {

View File

@ -11,7 +11,7 @@ sonar.projectName=1C: Project SubSystems Library
sonar.projectVersion=1.0 sonar.projectVersion=1.0
# относительный или абсолютный путь к каталогу с исходными кодом # относительный или абсолютный путь к каталогу с исходными кодом
sonar.sources=src sonar.sources=src/cf
# кодировка # кодировка
sonar.sourceEncoding=UTF-8 sonar.sourceEncoding=UTF-8
@ -27,4 +27,4 @@ sonar.scm.exclusions.disabled=true
# для Git # для Git
sonar.scm.enabled=true sonar.scm.enabled=true
sonar.scm.provider=git sonar.scm.provider=git

Some files were not shown because too many files have changed in this diff Show More