Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Merged
merged 13 commits into from
May 6, 2024
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 3 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
src/ConfigDumpInfo.xml
src/dumplist.txt
ConfigDumpInfo.xml
dumplist.txt
.vscode
/.metadata/
/.scannerwork/
/.scannerwork/
Original file line number Diff line number Diff line change
@@ -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/).
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
#language: ru

@tree

Функционал: проверка установки пометки удаления

Контекст:
Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий

Сценарий: Проверка установки пометки удаления для элементов справочника Тип соответствия объектов ИБ
* Создание элемента
И В командном интерфейсе я выбираю 'Соответствие объектов ИБ' 'Тип соответствия объектов ИБ'
Тогда открылось окно 'Тип соответствия объектов ИБ'
И я нажимаю на кнопку с именем 'ФормаСоздать'
Тогда открылось окно 'Тип соответствия объектов ИБ (создание)'
И в поле с именем 'Наименование' я ввожу текст 'ВА_Тест'
И я нажимаю на кнопку с именем 'ФормаЗаписатьИЗакрыть'
* Установка пометки
И в таблице 'Список' я выделяю все строки
И я выбираю пункт контекстного меню с именем 'СписокКонтекстноеМенюУстановитьПометкуУдаления' на элементе формы с именем "Список"
Тогда открылось окно '1С:Предприятие'
И я нажимаю на кнопку с именем 'Button0'
* Снятие пометки
Когда открылось окно 'Тип соответствия объектов ИБ'
И в таблице 'Список' я выделяю все строки
И я выбираю пункт контекстного меню с именем 'СписокКонтекстноеМенюУстановитьПометкуУдаления' на элементе формы с именем "Список"
Тогда открылось окно '1С:Предприятие'
И я нажимаю на кнопку с именем 'Button0'

Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#language: ru

@tree

Функционал: ввод данных

Контекст:
Дано Я запускаю сценарий открытия TestClient или подключаю уже существующий

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

44 changes: 21 additions & 23 deletions jobConfiguration.json
Original file line number Diff line number Diff line change
@@ -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
"srcDir": "src/cf",
"initInfobase": {
"initMethod": "fromSource",
"extensions": [
{
"name": "YAXUnit",
"initMethod": "fromSource",
"path": "src/cfe/YAXUnit",
"stages": ["yaxunit"]
}
]
},
"sonarqube": {
"waitForQualityGate": true
"smoke": {
"publishToAllureReport": true,
"publishToJUnitReport": false
},
"initInfobase": {
"initMethod": "fromSource"
"yaxunit": {
"publishToAllureReport": true,
"publishToJUnitReport": false
},
"notifications": {
"telegram": {
Expand Down
4 changes: 2 additions & 2 deletions sonar-project.properties
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -27,4 +27,4 @@ sonar.scm.exclusions.disabled=true

# для Git
sonar.scm.enabled=true
sonar.scm.provider=git
sonar.scm.provider=git
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
23 changes: 23 additions & 0 deletions src/cfe/YAXUnit/CommonModules/Мокито.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.16">
<CommonModule uuid="b5c40903-c446-420c-824e-07c58f5b7021">
<Properties>
<Name>Мокито</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Мокито</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Global>false</Global>
<ClientManagedApplication>true</ClientManagedApplication>
<Server>true</Server>
<ExternalConnection>false</ExternalConnection>
<ClientOrdinaryApplication>true</ClientOrdinaryApplication>
<ServerCall>false</ServerCall>
<Privileged>false</Privileged>
<ReturnValuesReuse>DontUse</ReturnValuesReuse>
</Properties>
</CommonModule>
</MetaDataObject>
Loading
Loading