mirror of
https://github.com/firstBitSportivnaya/PSSL.git
synced 2024-11-19 17:51:57 +02:00
Добавлены тесты YaxUnit и Vanessa (#51)
Добавлены тесты YaxUnit и Vanessa Automation, настроены шаги сборки, добавлено руководство по добавлению юнит-тестов
This commit is contained in:
parent
84d74ace58
commit
45faad37f8
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,5 +1,5 @@
|
||||
src/ConfigDumpInfo.xml
|
||||
src/dumplist.txt
|
||||
ConfigDumpInfo.xml
|
||||
dumplist.txt
|
||||
.vscode
|
||||
/.metadata/
|
||||
/.scannerwork/
|
||||
/.scannerwork/
|
||||
|
@ -32,5 +32,11 @@
|
||||
|
||||
## Информация для контрибьюторов
|
||||
|
||||
### Версия платформы и режим совместимости
|
||||
|
||||
> Разработка ведется на версии 8.3.23
|
||||
> Режим совместимости 8.3.18
|
||||
|
||||
### Руководство контрибьютора
|
||||
|
||||
1. [Руководство по написанию юнит-тестов YaXUnit](docs/РуководствоПоНаписаниюТестовYAxUnit.md)
|
||||
|
86
docs/РуководствоПоНаписаниюТестовYAxUnit.md
Normal file
86
docs/РуководствоПоНаписаниюТестовYAxUnit.md
Normal 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/).
|
29
features/Проверка пометки на удаление.feature
Normal file
29
features/Проверка пометки на удаление.feature
Normal file
@ -0,0 +1,29 @@
|
||||
#language: ru
|
||||
|
||||
@tree
|
||||
|
||||
Функционал: проверка установки пометки удаления
|
||||
|
||||
Контекст:
|
||||
Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий
|
||||
|
||||
Сценарий: Проверка установки пометки удаления для элементов справочника Тип соответствия объектов ИБ
|
||||
* Создание элемента
|
||||
И В командном интерфейсе я выбираю 'Соответствие объектов ИБ' 'Тип соответствия объектов ИБ'
|
||||
Тогда открылось окно 'Тип соответствия объектов ИБ'
|
||||
И я нажимаю на кнопку с именем 'ФормаСоздать'
|
||||
Тогда открылось окно 'Тип соответствия объектов ИБ (создание)'
|
||||
И в поле с именем 'Наименование' я ввожу текст 'ВА_Тест'
|
||||
И я нажимаю на кнопку с именем 'ФормаЗаписатьИЗакрыть'
|
||||
* Установка пометки
|
||||
И в таблице 'Список' я выделяю все строки
|
||||
И я выбираю пункт контекстного меню с именем 'СписокКонтекстноеМенюУстановитьПометкуУдаления' на элементе формы с именем "Список"
|
||||
Тогда открылось окно '1С:Предприятие'
|
||||
И я нажимаю на кнопку с именем 'Button0'
|
||||
* Снятие пометки
|
||||
Когда открылось окно 'Тип соответствия объектов ИБ'
|
||||
И в таблице 'Список' я выделяю все строки
|
||||
И я выбираю пункт контекстного меню с именем 'СписокКонтекстноеМенюУстановитьПометкуУдаления' на элементе формы с именем "Список"
|
||||
Тогда открылось окно '1С:Предприятие'
|
||||
И я нажимаю на кнопку с именем 'Button0'
|
||||
|
30
features/Создание элемента справочника.feature
Normal file
30
features/Создание элемента справочника.feature
Normal file
@ -0,0 +1,30 @@
|
||||
#language: ru
|
||||
|
||||
@tree
|
||||
|
||||
Функционал: ввод данных
|
||||
|
||||
Контекст:
|
||||
Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий
|
||||
|
||||
Сценарий: Создание элемента справочника Тип соответствия объектов ИБ
|
||||
* Создание элемента
|
||||
И В командном интерфейсе я выбираю 'Соответствие объектов ИБ' 'Тип соответствия объектов ИБ'
|
||||
Тогда открылось окно 'Тип соответствия объектов ИБ'
|
||||
И я нажимаю на кнопку с именем 'ФормаСоздать'
|
||||
Тогда открылось окно 'Тип соответствия объектов ИБ (создание)'
|
||||
И в поле с именем 'Наименование' я ввожу текст 'ВА - Тест'
|
||||
И в поле с именем 'ИдентификаторНастройки' я ввожу текст 'ВА - Тест'
|
||||
И я нажимаю на кнопку с именем 'ФормаЗаписатьИЗакрыть'
|
||||
И я жду закрытия окна 'Тип соответствия объектов ИБ (создание) *' в течение 20 секунд
|
||||
* Проверка создания
|
||||
Когда открылось окно 'Тип соответствия объектов ИБ'
|
||||
И я нажимаю на кнопку с именем 'ФормаНайти'
|
||||
Тогда открылось окно 'Найти'
|
||||
И я меняю значение переключателя с именем 'CompareType' на 'По точному совпадению'
|
||||
И я нажимаю на кнопку с именем 'Find'
|
||||
Тогда открылось окно 'Тип соответствия объектов ИБ'
|
||||
И в таблице "Список" я выбираю текущую строку
|
||||
Тогда открылось окно 'ВА - Тест (Тип соответствия объектов ИБ)'
|
||||
И Я закрываю окно 'ВА - Тест (Тип соответствия объектов ИБ)'
|
||||
|
@ -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": {
|
||||
"initSteps": true,
|
||||
"syntaxCheck": true,
|
||||
"smoke": true,
|
||||
"sonarqube": true,
|
||||
"telegram": true
|
||||
},
|
||||
"timeout": {
|
||||
"smoke": 300,
|
||||
"bdd": 180,
|
||||
"createInfoBase": 120,
|
||||
"designerToEdtFormatTransformation": 120,
|
||||
"edtToDesignerFormatTransformation": 120,
|
||||
"edtValidate": 300,
|
||||
"initInfoBase": 120,
|
||||
"resultTransformation": 60,
|
||||
"sonarqube": 150,
|
||||
"syntaxCheck": 300,
|
||||
"zipInfoBase": 120
|
||||
"yaxunit": true,
|
||||
"telegram": true,
|
||||
"bdd": true
|
||||
},
|
||||
"sourceFormat": "designer",
|
||||
"srcDir": "src",
|
||||
"resultsTransform": {
|
||||
"removeSupport": false
|
||||
},
|
||||
"sonarqube": {
|
||||
"waitForQualityGate": true
|
||||
},
|
||||
"srcDir": "src/cf",
|
||||
"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": {
|
||||
"telegram": {
|
||||
|
@ -11,7 +11,7 @@ sonar.projectName=1C: Project SubSystems Library
|
||||
sonar.projectVersion=1.0
|
||||
|
||||
# относительный или абсолютный путь к каталогу с исходными кодом
|
||||
sonar.sources=src
|
||||
sonar.sources=src/cf
|
||||
|
||||
# кодировка
|
||||
sonar.sourceEncoding=UTF-8
|
||||
@ -27,4 +27,4 @@ sonar.scm.exclusions.disabled=true
|
||||
|
||||
# для Git
|
||||
sonar.scm.enabled=true
|
||||
sonar.scm.provider=git
|
||||
sonar.scm.provider=git
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.8 KiB |
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user