All Projects → artbear → 1bdd

artbear / 1bdd

Licence: MPL-2.0 License
1BDD для OneScript - консольный фреймворк, реализующий BDD для проекта OneScript. Для Windows и Linux.

Programming Languages

1C Enterprise
81 projects
Gherkin
971 projects

Projects that are alternatives of or similar to 1bdd

hsdatalog
BDD-based implementation of Datalog
Stars: ✭ 30 (+15.38%)
Mutual labels:  bdd
TestBox
TestBox is a next generation testing framework for ColdFusion (CFML) that is based on BDD (Behavior Driven Development) for providing a clean obvious syntax for writing tests. It also includes MockBox, our mocking and stubbing framework.
Stars: ✭ 54 (+107.69%)
Mutual labels:  bdd
gwtdo
GWTdo is a .NET library that helps developers write readable tests. It's a DSL based on the Given-When-Then style which could be used in your test projects.GWTdo
Stars: ✭ 23 (-11.54%)
Mutual labels:  bdd
spring-boot-microservice-best-practices
Best practices and integrations available for Spring Boot based Microservice in a single repository.
Stars: ✭ 139 (+434.62%)
Mutual labels:  bdd
laracom
laracom driven by go micro services
Stars: ✭ 37 (+42.31%)
Mutual labels:  bdd
obyte.js
A pure and powerful JavaScript Obyte library.
Stars: ✭ 26 (+0%)
Mutual labels:  oscript
pytest-it
Decorate your pytest suite with RSpec-style pytest markers, then run `pytest --it` to see a plaintext spec of the test structure.
Stars: ✭ 26 (+0%)
Mutual labels:  bdd
gomatch
Library created for testing JSON against patterns.
Stars: ✭ 41 (+57.69%)
Mutual labels:  bdd
gherkin
Pure Rust implementation of Gherkin language (`.feature` file) for Cucumber testing framework.
Stars: ✭ 41 (+57.69%)
Mutual labels:  bdd
respect
RSpec inspired test framework for Reason/OCaml/Bucklescript.
Stars: ✭ 28 (+7.69%)
Mutual labels:  bdd
cppspec
BDD testing for C++ à la RSpec
Stars: ✭ 13 (-50%)
Mutual labels:  bdd
cucumber
Cucumber testing framework for Rust. Fully native, no external test runners or dependencies.
Stars: ✭ 322 (+1138.46%)
Mutual labels:  bdd
eggplant
A behaviour driven development (BDD) library for Clojure. Simplicity is key.
Stars: ✭ 16 (-38.46%)
Mutual labels:  bdd
automate-home
Yet another python home automation (iot) project. Because a smart light is more than just on or off.
Stars: ✭ 59 (+126.92%)
Mutual labels:  bdd
bat
Gherkin based DSL for testing HTTP APIs via Cucumber.JS
Stars: ✭ 30 (+15.38%)
Mutual labels:  bdd
orion
A next-generation testing tool. Orion provides a powerful DSL to write and automate your acceptance tests
Stars: ✭ 40 (+53.85%)
Mutual labels:  bdd
bdd-for-c
A simple BDD library for the C language
Stars: ✭ 90 (+246.15%)
Mutual labels:  bdd
livre-developpement-pilote-comportement
Sources du livre sur Développement piloté par le comportement
Stars: ✭ 21 (-19.23%)
Mutual labels:  bdd
behave-restful
BDD Framework to Test REST Services and APIs
Stars: ✭ 47 (+80.77%)
Mutual labels:  bdd
hitchstory
Type-safe, StrictYAML based BDD framework for python.
Stars: ✭ 24 (-7.69%)
Mutual labels:  bdd

1BDD для OneScript

GitHub release Тестирование GitHub Workflow Status Статус Порога Качества Покрытие Технический долг Строки кода

Vanessa open-sourceChat on Telegram vanessa_opensource_chat или oscript_library Chat on Telegram oscript_library - в этих чатах вы можете задавать любые вопросы разработчикам и активным участникам.

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 фреймворка

Есть несколько вариантов использования API фреймворка из кода реализации шагов.

Основная документация по шагам находится в каталоге документации

Стандартная библиотека

Стандартные библиотечные шаги, подключаемые автоматически для любой фичи, находятся в каталоге features/lib

  • ВыполнениеКоманд.feature - выполнение команд системы и запуск процессов
  • ФайловыеОперации.feature - создание файлов/каталогов, их копирование, анализ содержимого файлов

Основная документация по шагам находится в каталоге документации

Расширения для Visual Studio Code

Для Visual Studio Code созданы расширения, облегчающие работу с файлами фич:

  • Snippets and Syntax Highlight for Gherkin (Cucumber) - подсветка синтаксиса и автодополнение ключевых слов Gherkin.
  • Gherkin step autocomplete - автодополнение шагов в файлах фич. У этого расширения есть настройка gherkin-autocomplete.featureLibraries, которая позволяет подключить внешние по отношению к проекту библиотеки шагов (например, установленную вместе с 1bdd). По Shift+F12/Shift+Alt+F12 можно перейти к реализации текущего шага - если она есть в текущем проекте и/или внешних библиотеках.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].