Skip to content
1BDD для OneScript - консольный фреймворк, реализующий BDD для проекта OneScript. Для Windows и Linux.
1C Enterprise Gherkin Other
Branch: develop
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode Поправил файл задач VSC - перевел в современный формат Sep 22, 2018
docs Добавил возможность переопределить статус выполнения шага (#148) Apr 4, 2019
features Исправление пропуска сценария Apr 9, 2019
src Установил номер версии на 1.10.0 Apr 24, 2019
tasks Исправил мелкие проблемы Nov 17, 2018
tests Добавил возможность переопределить статус выполнения шага (#148) Apr 4, 2019
.atom-build.json поменялось имя главной фичи для CI Jun 5, 2016
.gitignore Обновил версии пакетов Apr 24, 2019
.travis.yml Временно отключил падающий этап "Сборка и публикация github & hub.osc… Feb 12, 2018
Jenkinsfile доработал анализ jnit-файлов Aug 28, 2017
LICENSE Применена лицензия Mozilla Public License 2.0 fix #29 May 5, 2016
README.md Добавлена информация по расширениям VSC Apr 10, 2019
appveyor-runtests.cmd Исправляю сборку appveyor #104 Dec 29, 2016
appveyor.yml Исправляю сборку appveyor #104 Dec 29, 2016
lib.config Версию нужно единожды задавать в файле Константы_1bdd.os Jan 27, 2017
packagedef
sonar-project.properties Временно отключил проверку покрытия кода в Сонаре Feb 12, 2018
travis-ci.sh убрал неверную установку собственного пакета Feb 10, 2018
travis-sonarqube.sh Еще попытка решения проблемы с правами на запуск командного файла для… Feb 10, 2018

README.md

1BDD для OneScript

GitHub release Build status Build Status Quality Gate Tech Debt

Join the chat at https://gitter.im/artbear/1bdd Здесь вы можете задавать любые вопросы разработчикам и активным участникам.

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 можно перейти к реализации текущего шага - если она есть в текущем проекте и/или внешних библиотеках.
You can’t perform that action at this time.