https://github.com/artbear/1bdd
1BDD для OneScript - консольный фреймворк, реализующий BDD для проекта OneScript. Для Windows и Linux.
https://github.com/artbear/1bdd
bdd oscript
Last synced: 12 months ago
JSON representation
1BDD для OneScript - консольный фреймворк, реализующий BDD для проекта OneScript. Для Windows и Linux.
- Host: GitHub
- URL: https://github.com/artbear/1bdd
- Owner: artbear
- License: mpl-2.0
- Created: 2016-05-18T17:49:38.000Z (over 9 years ago)
- Default Branch: develop
- Last Pushed: 2024-11-11T09:15:20.000Z (over 1 year ago)
- Last Synced: 2024-12-31T17:27:07.224Z (about 1 year ago)
- Topics: bdd, oscript
- Language: 1C Enterprise
- Homepage:
- Size: 3.61 MB
- Stars: 29
- Watchers: 7
- Forks: 18
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/artbear/1bdd/releases)
[](https://github.com/artbear/1bdd/actions/workflows/testing.yml)
[](https://github.com/artbear/1bdd/actions)
[](https://sonar.openbsl.ru/dashboard?id=1bdd)
[](https://sonar.openbsl.ru/dashboard?id=1bdd)
[](https://sonar.openbsl.ru/dashboard?id=1bdd)
[](https://sonar.openbsl.ru/dashboard?id=1bdd)
- [1BDD для OneScript](#1bdd-для-onescript)
- [Командная строка запуска](#командная-строка-запуска)
- [Формат файла фичи](#формат-файла-фичи)
- [Пример файла фичи](#пример-файла-фичи)
- [Формат файла шагов](#формат-файла-шагов)
- [Пример файла шагов](#пример-файла-шагов)
- [API фреймворка](#api-фреймворка)
- [Стандартная библиотека](#стандартная-библиотека)
- [Расширения для Visual Studio Code](#расширения-для-visual-studio-code)
[Vanessa open-source](https://t.me/vanessa_opensource_chat) или [oscript_library ](https://t.me/oscript_library) - в этих чатах вы можете задавать любые вопросы разработчикам и активным участникам.
`1bdd` - инструмент для выполнения автоматизированных требований/тестов, написанных на обычном, не программном языке.
Иными словами, это консольный фреймворк, реализующий `BDD` для проекта [OneScript](https://github.com/EvilBeaver/OneScript).
Для Windows и Linux.
Идеи черпаются из проекта [Cucumber](https://cucumber.io).
Основная документация находится [в каталоге документации](./docs/readme.md)
- в т.ч. библиотека полезных стандартных шагов
- API продукта
Ниже краткая информация о возможностях продукта.
```cmd
oscript bdd.os [ключи]
oscript bdd.os <команда> <параметры команды> [ключи]
Возможные команды:
[ключи]
или
exec [ключи]
Выполняет сценарии BDD для Gherkin-спецификаций
Параметры:
features-path - путь к файлам *.feature.
Можно указывать как каталоги, так и конкретные файлы.
-fail-fast - Немедленное завершение выполнения на первом же не пройденном сценарии
-name <ЧастьИмениСценария> - Выполнение сценариев, в имени которого есть указанная часть
-junit-out <путь-файла-отчета> - выводить отчет тестирования в формате JUnit.xml
gen [ключи]
Создает заготовки шагов для указанных Gherkin-спецификаций
Параметры:
features-path - путь к файлам *.feature.
Можно указывать как каталог, так и конкретный файл.
Возможные общие ключи:
-require <путь каталога или путь файла> - путь к каталогу фича-файлов или к фича-файлу, содержащим библиотечные шаги.
Если эта опция не задана, загружаются все os-файлы шагов из каталога исходной фичи и его подкаталогов.
Если опция задана, загружаются только os-файлы шагов из каталога фича-файлов или к фича-файла, содержащих библиотечные шаги.
-out <путь лог-файла>
-debug - включает режим отладки (полный лог + остаются временные файлы)
-verbose - включается полный лог
```
Для подсказки по конкретной команде наберите
`bdd help <команда>`.
Файл фичи должен иметь расширение `feature` и написан согласно синтаксису языка `Gherkin`
```gherkin
# language: ru
Функционал: Выполнение файловых операций
Как Пользователь
Я хочу иметь возможность выполнять различные файловые операции в тексте фич
Чтобы я мог проще протестировать и автоматизировать больше действий на OneScript
Сценарий: Каталог проекта
Допустим Я создаю временный каталог и сохраняю его в контекст
И Я устанавливаю временный каталог как рабочий каталог
Когда Я сохраняю каталог проекта в контекст
Тогда Я показываю каталог проекта
И Я показываю рабочий каталог
```
или
```gherkin
# language: ru
Функционал: Использование программного контекста
Как Разработчик
Я Хочу чтобы шаги разных сценариев могли обмениваться данными через програмнный контекст продукта
Сценарий: Первый сценарий
Когда Я сохранил ключ "Ключ1" и значение 10 в программном контексте
И я получаю ключ "Ключ1" и значение 10 из программного контекста
Сценарий: Следующий сценарий
Тогда я получаю ключ "Ключ1" и значение 10 из программного контекста
```
Это обычный os-скрипт, который располагает в подкаталоге `step_definitions` относительно файла фичи.
В этом файле должна быть служебная функция `ПолучитьСписокШагов`, которая возвращает массив всех шагов, заданных в этом скрипте.
Также внутри файла шагов могут располагаться специальные методы-обработчики (хуки) событий `ПередЗапускомСценария`/`ПослеЗапускаСценария`
```bsl
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
Перем БДД; //контекст фреймворка 1bdd
// Метод выдает список шагов, реализованных в данном файле-шагов
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
БДД = КонтекстФреймворкаBDD;
ВсеШаги = Новый Массив;
ВсеШаги.Добавить("ЯСохранилКлючИЗначениеВПрограммномКонтексте");
ВсеШаги.Добавить("ЯПолучаюКлючИЗначениеИзПрограммногоКонтекста");
Возврат ВсеШаги;
КонецФункции
// Реализация шагов
// Процедура выполняется перед запуском каждого сценария
Процедура ПередЗапускомСценария(Знач Узел) Экспорт
КонецПроцедуры
// Процедура выполняется после завершения каждого сценария
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт
КонецПроцедуры
//Я сохранил ключ "Ключ1" и значение 10 в программном контексте
Процедура ЯСохранилКлючИЗначениеВПрограммномКонтексте(Знач Ключ, Знач Значение) Экспорт
БДД.СохранитьВКонтекст(Ключ, Значение);
КонецПроцедуры
//я получаю ключ "Ключ1" и значение 10 из программного контекста
Процедура ЯПолучаюКлючИЗначениеИзПрограммногоКонтекста(Знач Ключ, Знач ОжидаемоеЗначение) Экспорт
НовоеЗначение = БДД.ПолучитьИзКонтекста(Ключ);
Ожидаем.Что(НовоеЗначение).Равно(ОжидаемоеЗначение);
КонецПроцедуры
```
Есть несколько вариантов использования API фреймворка из кода реализации шагов.
Основная документация по шагам находится [в каталоге документации](./docs/readme.md#api-фреймворка)
Стандартные библиотечные шаги, подключаемые автоматически для любой фичи, находятся в каталоге `features/lib`
- `ВыполнениеКоманд.feature` - выполнение команд системы и запуск процессов
- `ФайловыеОперации.feature` - создание файлов/каталогов, их копирование, анализ содержимого файлов
Основная документация по шагам находится [в каталоге документации](./docs/readme.md#стандартная-библиотека-шагов)
## Расширения для Visual Studio Code
Для Visual Studio Code созданы расширения, облегчающие работу с файлами фич:
- [Snippets and Syntax Highlight for Gherkin (Cucumber)](https://marketplace.visualstudio.com/itemdetails?itemName=stevejpurves.cucumber) - подсветка синтаксиса и автодополнение ключевых слов Gherkin.
- [Gherkin step autocomplete](https://marketplace.visualstudio.com/itemdetails?itemName=silverbulleters.gherkin-autocomplete) - автодополнение шагов в файлах фич.
У этого расширения есть настройка `gherkin-autocomplete.featureLibraries`, которая позволяет подключить внешние по отношению к проекту библиотеки шагов (например, установленную вместе с 1bdd).
По `Shift+F12`/`Shift+Alt+F12` можно перейти к реализации текущего шага - если она есть в текущем проекте и/или внешних библиотеках.