https://github.com/artbear/1bdd
1BDD для OneScript - консольный фреймворк, реализующий BDD для проекта OneScript. Для Windows и Linux.
https://github.com/artbear/1bdd
bdd oscript
Last synced: 2 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 (almost 9 years ago)
- Default Branch: develop
- Last Pushed: 2024-11-11T09:15:20.000Z (6 months ago)
- Last Synced: 2024-12-31T17:27:07.224Z (4 months 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.xmlgen [ключи]
Создает заготовки шагов для указанных 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` можно перейти к реализации текущего шага - если она есть в текущем проекте и/или внешних библиотеках.