mirror of
				https://github.com/firstBitSportivnaya/PSSL.git
				synced 2025-10-30 23:47:51 +02:00 
			
		
		
		
	Добавлены тесты YaxUnit и Vanessa (#51)
Добавлены тесты YaxUnit и Vanessa Automation, настроены шаги сборки, добавлено руководство по добавлению юнит-тестов
This commit is contained in:
		
							
								
								
									
										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
		Reference in New Issue
	
	Block a user