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:
parent
84d74ace58
commit
45faad37f8
6
.gitignore
vendored
6
.gitignore
vendored
@ -1,5 +1,5 @@
|
|||||||
src/ConfigDumpInfo.xml
|
ConfigDumpInfo.xml
|
||||||
src/dumplist.txt
|
dumplist.txt
|
||||||
.vscode
|
.vscode
|
||||||
/.metadata/
|
/.metadata/
|
||||||
/.scannerwork/
|
/.scannerwork/
|
||||||
|
@ -32,5 +32,11 @@
|
|||||||
|
|
||||||
## Информация для контрибьюторов
|
## Информация для контрибьюторов
|
||||||
|
|
||||||
|
### Версия платформы и режим совместимости
|
||||||
|
|
||||||
> Разработка ведется на версии 8.3.23
|
> Разработка ведется на версии 8.3.23
|
||||||
> Режим совместимости 8.3.18
|
> Режим совместимости 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": {
|
"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": {
|
||||||
|
@ -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
|
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