Здесь вы можете задавать любые вопросы разработчикам и активным участникам.
1bdd
- инструмент для выполнения автоматизированных требований/тестов, написанных на обычном, не программном языке.
Иными словами, это консольный фреймворк, реализующий BDD
для проекта OneScript.
Для Windows и Linux.
Идеи черпаются из проекта Cucumber.
Основная документация находится в каталоге документации
- в т.ч. библиотека полезных стандартных шагов
- API продукта
Ниже краткая информация о возможностях продукта.
oscript bdd.os <features-path> [ключи]
oscript bdd.os <команда> <параметры команды> [ключи]
Возможные команды:
<features-path> [ключи]
или
exec <features-path> [ключи]
Выполняет сценарии BDD для Gherkin-спецификаций
Параметры:
features-path - путь к файлам *.feature.
Можно указывать как каталоги, так и конкретные файлы.
-fail-fast - Немедленное завершение выполнения на первом же не пройденном сценарии
-name <ЧастьИмениСценария> - Выполнение сценариев, в имени которого есть указанная часть
-junit-out <путь-файла-отчета> - выводить отчет тестирования в формате JUnit.xml
gen <features-path> [ключи]
Создает заготовки шагов для указанных Gherkin-спецификаций
Параметры:
features-path - путь к файлам *.feature.
Можно указывать как каталог, так и конкретный файл.
Возможные общие ключи:
-require <путь каталога или путь файла> - путь к каталогу фича-файлов или к фича-файлу, содержащим библиотечные шаги.
Если эта опция не задана, загружаются все os-файлы шагов из каталога исходной фичи и его подкаталогов.
Если опция задана, загружаются только os-файлы шагов из каталога фича-файлов или к фича-файла, содержащих библиотечные шаги.
-out <путь лог-файла>
-debug <on|off> - включает режим отладки (полный лог + остаются временные файлы)
-verbose <on|off> - включается полный лог
Для подсказки по конкретной команде наберите
bdd help <команда>
.
Файл фичи должен иметь расширение feature
и написан согласно синтаксису языка Gherkin
# language: ru
Функционал: Выполнение файловых операций
Как Пользователь
Я хочу иметь возможность выполнять различные файловые операции в тексте фич
Чтобы я мог проще протестировать и автоматизировать больше действий на OneScript
Сценарий: Каталог проекта
Допустим Я создаю временный каталог и сохраняю его в контекст
И Я устанавливаю временный каталог как рабочий каталог
Когда Я сохраняю каталог проекта в контекст
Тогда Я показываю каталог проекта
И Я показываю рабочий каталог
или
# language: ru
Функционал: Использование программного контекста
Как Разработчик
Я Хочу чтобы шаги разных сценариев могли обмениваться данными через програмнный контекст продукта
Сценарий: Первый сценарий
Когда Я сохранил ключ "Ключ1" и значение 10 в программном контексте
И я получаю ключ "Ключ1" и значение 10 из программного контекста
Сценарий: Следующий сценарий
Тогда я получаю ключ "Ключ1" и значение 10 из программного контекста
Это обычный os-скрипт, который располагает в подкаталоге step_definitions
относительно файла фичи.
В этом файле должна быть служебная функция ПолучитьСписокШагов
, которая возвращает массив всех шагов, заданных в этом скрипте.
Также внутри файла шагов могут располагаться специальные методы-обработчики (хуки) событий ПередЗапускомСценария
/ПослеЗапускаСценария
// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd
Перем БДД; //контекст фреймворка 1bdd
// Метод выдает список шагов, реализованных в данном файле-шагов
Функция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт
БДД = КонтекстФреймворкаBDD;
ВсеШаги = Новый Массив;
ВсеШаги.Добавить("ЯСохранилКлючИЗначениеВПрограммномКонтексте");
ВсеШаги.Добавить("ЯПолучаюКлючИЗначениеИзПрограммногоКонтекста");
Возврат ВсеШаги;
КонецФункции
// Реализация шагов
// Процедура выполняется перед запуском каждого сценария
Процедура ПередЗапускомСценария(Знач Узел) Экспорт
КонецПроцедуры
// Процедура выполняется после завершения каждого сценария
Процедура ПослеЗапускаСценария(Знач Узел) Экспорт
КонецПроцедуры
//Я сохранил ключ "Ключ1" и значение 10 в программном контексте
Процедура ЯСохранилКлючИЗначениеВПрограммномКонтексте(Знач Ключ, Знач Значение) Экспорт
БДД.СохранитьВКонтекст(Ключ, Значение);
КонецПроцедуры
//я получаю ключ "Ключ1" и значение 10 из программного контекста
Процедура ЯПолучаюКлючИЗначениеИзПрограммногоКонтекста(Знач Ключ, Знач ОжидаемоеЗначение) Экспорт
НовоеЗначение = БДД.ПолучитьИзКонтекста(Ключ);
Ожидаем.Что(НовоеЗначение).Равно(ОжидаемоеЗначение);
КонецПроцедуры
Есть несколько вариантов использования API фреймворка из кода реализации шагов.
Основная документация по шагам находится в каталоге документации
Стандартные библиотечные шаги, подключаемые автоматически для любой фичи, находятся в каталоге features/lib
ВыполнениеКоманд.feature
- выполнение команд системы и запуск процессовФайловыеОперации.feature
- создание файлов/каталогов, их копирование, анализ содержимого файлов
Основная документация по шагам находится в каталоге документации
Для Visual Studio Code созданы расширения, облегчающие работу с файлами фич:
- Snippets and Syntax Highlight for Gherkin (Cucumber) - подсветка синтаксиса и автодополнение ключевых слов Gherkin.
- Gherkin step autocomplete - автодополнение шагов в файлах фич.
У этого расширения есть настройка
gherkin-autocomplete.featureLibraries
, которая позволяет подключить внешние по отношению к проекту библиотеки шагов (например, установленную вместе с 1bdd). ПоShift+F12
/Shift+Alt+F12
можно перейти к реализации текущего шага - если она есть в текущем проекте и/или внешних библиотеках.