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

Добавил возможность переопределить статус выполнения шага #148

Merged
merged 11 commits into from
Apr 4, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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

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

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

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

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

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

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