Skip to content

Commit

Permalink
Добавил возможность переопределить статус выполнения шага (#148)
Browse files Browse the repository at this point in the history
* Добавил возможность переопределить статус выполнения шага

* Оставил только пропуск сценария

* Исправил тест

* Добавил пустую строку в конце файла для Git

* Слегка поправил названия сценариев

* Слегка исправил название сценария

* Перевод строки на последней строке файла для Git

* Перевод строки на последней строке файла для Git

* Добавил новый шаг в доку

* Исправил отступы согласно стандарту markdown

* Убрал лишнее
  • Loading branch information
zeratulayuris authored and artbear committed Apr 4, 2019
1 parent e34ea2d commit e82e5ca
Show file tree
Hide file tree
Showing 8 changed files with 153 additions and 0 deletions.
8 changes: 8 additions & 0 deletions docs/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
- [Управление переменными контекста](#управление-переменными-контекста)
- [Проверка значений](#проверка-значений)
- [Управление переменными окружения](#управление-переменными-окружения)
- [Пропуск сценария](#пропуск-сценария)
- [API фреймворка](#api-фреймворка)
- [Программный контекст](#программный-контекст)
- [Программный вызов любого шага сценария - БДД.ВыполнитьШаг(Наименование)](#программный-вызов-любого-шага-сценария---бддвыполнитьшагнаименование)
Expand Down Expand Up @@ -264,6 +265,7 @@

<a id="markdown-управление-переменными-окружения" name="управление-переменными-окружения"></a>
### Управление переменными окружения

>Важно: значения в переменных окружения всегда хранятся как строки, т.е. для любого значения выполняется приведение к строке.
- `Дано Я сохраняю значение 123 в переменную "ПеременнаяДляУстановки"`
Expand All @@ -277,8 +279,14 @@
|BDDVAR1|
```

<a id="markdown-пропуск-сценария" name="пропуск-сценария"></a>
### Пропуск сценария

- `Я пропускаю этот сценарий в Linux`

<a id="markdown-api-фреймворка" name="api-фреймворка"></a>
## API фреймворка

>для использования в собственных шагах, реализованных в коде скрипта на языке OneScript
<a id="markdown-программный-контекст" name="программный-контекст"></a>
Expand Down
31 changes: 31 additions & 0 deletions features/core/ПропускСценария.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# language: ru

Функционал: Вызов сценария, в реализации шага которого установлен статус
Как Разработчик
Я Хочу иметь возможность пропускать сценарий
Чтобы иметь возможность создавать наборы тестов под разные окружения

Контекст: Использование каталог тестовых фич
Допустим установил каталог проекта "tests/fixtures" как текущий

Сценарий: выполнение сценария останавливается после шага пропуска

Когда проверка поведения фичи "ПропускСценария" с передачей параметра "-verbose off" закончилась с кодом возврата 0
Тогда в лог-файле запуска продукта есть строка "Не выполнялся"
И в лог-файле запуска продукта отсутствует строка "я ничего не делаю"
И в лог-файле запуска продукта есть строка
"""
1 Сценарий ( 0 Пройден, 0 Не реализован, 0 Сломался, 1 Не выполнялся )
2 Шаг ( 0 Пройден, 0 Не реализован, 0 Сломался, 2 Не выполнялся )
"""

Сценарий: выполнение сценария останавливается после шага пропуска, следующий сценарий выполняется нормально

Когда проверка поведения фичи "ПропускСценария2" с передачей параметра "-verbose off" закончилась с кодом возврата 0
Тогда в лог-файле запуска продукта есть строка "Не выполнялся"
И в лог-файле запуска продукта есть строка "я ничего не делаю"
И в лог-файле запуска продукта есть строка
"""
2 Сценарий ( 2 Пройден, 0 Не реализован, 0 Сломался, 0 Не выполнялся )
2 Шаг ( 1 Пройден, 0 Не реализован, 0 Сломался, 1 Не выполнялся )
"""
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd

Перем БДД; //контекст фреймворка 1bdd
Перем Лог;
Перем ЭтоWindows;

// Метод выдает список шагов, реализованных в данном файле-шагов
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
БДД = КонтекстФреймворкаBDD;

ВсеШаги = Новый Массив;

ВсеШаги.Добавить("ЯПропускаюЭтотСценарийВLinux");

Возврат ВсеШаги;
КонецФункции

// Реализация шагов

// я пропускаю этот сценарий в Linux
Процедура ЯПропускаюЭтотСценарийВLinux() Экспорт
Если НЕ ЭтоWindows() Тогда
БДД.ПропуститьСценарий();
КонецЕсли;
КонецПроцедуры

//{ Служебные методы

Функция ЭтоWindows()
Если ЭтоWindows = Неопределено Тогда
СистемнаяИнформация = Новый СистемнаяИнформация;
ЭтоWindows = Найти(НРег(СистемнаяИнформация.ВерсияОС), "windows") > 0;
КонецЕсли;
Возврат ЭтоWindows;
КонецФункции

//}

Лог = Логирование.ПолучитьЛог("bdd");
9 changes: 9 additions & 0 deletions features/lib/ПропускСценарияВLinux.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# language: ru

Функционал: пропуск сценария в Linux
Как Пользователь
Я хочу иметь возможность пропускать сценарии в Linux
Чтобы я мог проще автоматизировать больше действий на OneScript

Сценарий: я пропускаю этот сценарий в Linux
Когда я пропускаю этот сценарий в Linux
14 changes: 14 additions & 0 deletions src/bdd-exec.os
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@

Перем Контекст;

Перем ПропуститьСценарий;

Перем ФайлФичи;
Перем НаборБиблиотечныхШагов;
Перем ИспользоватьБыстрыйОстановНаОшибке;
Expand Down Expand Up @@ -175,6 +177,12 @@
КонецЕсли;
КонецПроцедуры

// Пропускаем сценарий
//
Процедура ПропуститьСценарий() Экспорт
ПропуститьСценарий = Истина;
КонецПроцедуры

// }

// Выполняет прогон фичи
Expand Down Expand Up @@ -771,6 +779,7 @@
Знач ПредставлениеШага, ОписаниеОшибкиВыполнения)

СтатусВыполнения = ВозможныеСтатусыВыполнения.НеВыполнялся;
ПропуститьСценарий = Ложь;
ОписаниеОшибкиВыполнения = "";

Лог.Отладка("Перед выполнением шага сценария %1
Expand Down Expand Up @@ -800,6 +809,11 @@
Попытка
Рефлектор.ВызватьМетод(ОписаниеИсполнителяШагов.Исполнитель, АдресШага, МассивПараметров);
СтатусВыполнения = ВозможныеСтатусыВыполнения.Пройден;
Если ПропуститьСценарий Тогда
Лог.Отладка("Шаг %1 - пропускаем сценарий", АдресШага);
СтатусВыполнения = ВозможныеСтатусыВыполнения.НеВыполнялся;
ПропуститьСценарий = Ложь;
КонецЕсли;

Исключение

Expand Down
24 changes: 24 additions & 0 deletions tests/fixtures/step_definitions/ПропускСценария.os
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd

Перем БДД; //контекст фреймворка 1bdd
Перем Лог;

// Метод выдает список шагов, реализованных в данном файле-шагов
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
БДД = КонтекстФреймворкаBDD;

ВсеШаги = Новый Массив;

ВсеШаги.Добавить("ЯПропускаюЭтотСценарий");

Возврат ВсеШаги;
КонецФункции

// Реализация шагов

// я пропускаю этот сценарий
Процедура ЯПропускаюЭтотСценарий() Экспорт
БДД.ПропуститьСценарий();
КонецПроцедуры

Лог = Логирование.ПолучитьЛог("bdd");
11 changes: 11 additions & 0 deletions tests/fixtures/ПропускСценария.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# language: ru

Функционал: Вызов сценария, в реализации шага которого выполняется пропуск сценария
Как Разработчик
Я Хочу иметь возможность пропускать сценарий
Чтобы иметь возможность создавать наборы тестов под разные окружения

Сценарий: этот сценарий пропускается

Тогда я пропускаю этот сценарий
И я ничего не делаю
17 changes: 17 additions & 0 deletions tests/fixtures/ПропускСценария2.feature
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# language: ru

Функционал: Вызов сценария, в реализации шага которого выполняется пропуск сценария
Как Разработчик
Я Хочу иметь возможность пропускать сценарий
Чтобы иметь возможность создавать наборы тестов под разные окружения

Контекст:
Дано я ничего не делаю

Сценарий: этот сценарий пропускается

Тогда я пропускаю этот сценарий

Сценарий: а этот сценарий не пропускается

Тогда я ничего не делаю

0 comments on commit e82e5ca

Please sign in to comment.