{"id":16372648,"url":"https://github.com/artbear/1bdd","last_synced_at":"2026-03-13T21:30:18.810Z","repository":{"id":45357951,"uuid":"59138578","full_name":"artbear/1bdd","owner":"artbear","description":"1BDD для OneScript - консольный фреймворк, реализующий BDD для проекта OneScript. Для Windows и Linux.","archived":false,"fork":false,"pushed_at":"2024-11-11T09:15:20.000Z","size":3789,"stargazers_count":29,"open_issues_count":29,"forks_count":18,"subscribers_count":7,"default_branch":"develop","last_synced_at":"2024-12-31T17:27:07.224Z","etag":null,"topics":["bdd","oscript"],"latest_commit_sha":null,"homepage":"","language":"1C Enterprise","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/artbear.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-05-18T17:49:38.000Z","updated_at":"2024-11-16T00:48:05.000Z","dependencies_parsed_at":"2024-03-20T17:46:08.929Z","dependency_job_id":"ab90bc83-354d-40a5-9c2f-a26a29f86695","html_url":"https://github.com/artbear/1bdd","commit_stats":null,"previous_names":[],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artbear%2F1bdd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artbear%2F1bdd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artbear%2F1bdd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/artbear%2F1bdd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/artbear","download_url":"https://codeload.github.com/artbear/1bdd/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239921876,"owners_count":19718842,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bdd","oscript"],"created_at":"2024-10-11T03:12:03.201Z","updated_at":"2026-03-13T21:30:18.733Z","avatar_url":"https://github.com/artbear.png","language":"1C Enterprise","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ca id=\"markdown-1bdd-для-onescript\" name=\"1bdd-для-onescript\"\u003e\u003c/a\u003e\r\n# 1BDD для OneScript\r\n\r\n\r\n[![GitHub release](https://img.shields.io/github/release/artbear/1bdd.svg)](https://github.com/artbear/1bdd/releases) \r\n[![Тестирование](https://github.com/artbear/1bdd/actions/workflows/testing.yml/badge.svg?branch=develop)](https://github.com/artbear/1bdd/actions/workflows/testing.yml)\r\n[![GitHub Workflow Status](https://img.shields.io/github/workflow/status/artbear/1bdd/%D0%A2%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5?style=flat-square)](https://github.com/artbear/1bdd/actions)\r\n[![Статус Порога Качества](https://sonar.openbsl.ru/api/project_badges/measure?project=1bdd\u0026metric=alert_status)](https://sonar.openbsl.ru/dashboard?id=1bdd) \r\n[![Покрытие](https://sonar.openbsl.ru/api/project_badges/measure?project=1bdd\u0026metric=coverage)](https://sonar.openbsl.ru/dashboard?id=1bdd)\r\n[![Технический долг](https://sonar.openbsl.ru/api/project_badges/measure?project=1bdd\u0026metric=sqale_index)](https://sonar.openbsl.ru/dashboard?id=1bdd)\r\n[![Строки кода](https://sonar.openbsl.ru/api/project_badges/measure?project=1bdd\u0026metric=ncloc)](https://sonar.openbsl.ru/dashboard?id=1bdd) \r\n\r\n\u003c!-- [![Build status](https://ci.appveyor.com/api/projects/status/vbnk445352crljjn?svg=true)](https://ci.appveyor.com/project/artbear/1bdd)\r\n[![Build Status](https://travis-ci.org/artbear/1bdd.svg?branch=develop)](https://travis-ci.org/artbear/1bdd)\r\n[![Quality Gate](https://sonar.silverbulleters.org/api/badges/gate?key=opensource-1bdd)](https://sonar.silverbulleters.org/dashboard?id=opensource-1bdd)\r\n[![Tech Debt](https://sonar.silverbulleters.org/api/badges/measure?key=opensource-1bdd\u0026metric=sqale_debt_ratio)](https://sonar.silverbulleters.org/dashboard?id=opensource-1bdd) --\u003e\r\n\r\n\u003c!-- TOC --\u003e\r\n\r\n- [1BDD для OneScript](#1bdd-для-onescript)\r\n\t- [Командная строка запуска](#командная-строка-запуска)\r\n\t- [Формат файла фичи](#формат-файла-фичи)\r\n\t\t- [Пример файла фичи](#пример-файла-фичи)\r\n\t- [Формат файла шагов](#формат-файла-шагов)\r\n\t\t- [Пример файла шагов](#пример-файла-шагов)\r\n\t- [API фреймворка](#api-фреймворка)\r\n\t- [Стандартная библиотека](#стандартная-библиотека)\r\n\t- [Расширения для Visual Studio Code](#расширения-для-visual-studio-code)\r\n\r\n\u003c!-- /TOC --\u003e\r\n\r\n[Vanessa open-source![Chat on Telegram vanessa_opensource_chat](https://img.shields.io/badge/Chat%20on-Telegram-brightgreen.svg)](https://t.me/vanessa_opensource_chat) или [oscript_library ![Chat on Telegram oscript_library](https://img.shields.io/badge/Chat%20on-Telegram-brightgreen.svg)](https://t.me/oscript_library) - в этих чатах вы можете задавать любые вопросы разработчикам и активным участникам.\r\n\r\n`1bdd` - инструмент для выполнения автоматизированных требований/тестов, написанных на обычном, не программном языке.\r\n\r\nИными словами, это консольный фреймворк, реализующий `BDD` для проекта [OneScript](https://github.com/EvilBeaver/OneScript).\r\nДля Windows и Linux.\r\n\r\nИдеи черпаются из проекта [Cucumber](https://cucumber.io).\r\n\r\nОсновная документация находится [в каталоге документации](./docs/readme.md)\r\n\r\n- в т.ч. библиотека полезных стандартных шагов\r\n- API продукта\r\n\r\nНиже краткая информация о возможностях продукта.\r\n\r\n\u003ca id=\"markdown-командная-строка-запуска\" name=\"командная-строка-запуска\"\u003e\u003c/a\u003e\r\n## Командная строка запуска\r\n\r\n```cmd\r\noscript bdd.os \u003cfeatures-path\u003e [ключи]\r\noscript bdd.os \u003cкоманда\u003e \u003cпараметры команды\u003e [ключи]\r\n\r\nВозможные команды:\r\n\t\u003cfeatures-path\u003e [ключи]\r\n\tили\r\n\texec \u003cfeatures-path\u003e [ключи]\r\n\t\tВыполняет сценарии BDD для Gherkin-спецификаций\r\n\t\tПараметры:\r\n\t\t\tfeatures-path - путь к файлам *.feature.\r\n\t\t\tМожно указывать как каталоги, так и конкретные файлы.\r\n\r\n\t\t\t-fail-fast - Немедленное завершение выполнения на первом же не пройденном сценарии\r\n\r\n\t\t\t-name \u003cЧастьИмениСценария\u003e - Выполнение сценариев, в имени которого есть указанная часть\r\n\t\t\t-junit-out \u003cпуть-файла-отчета\u003e - выводить отчет тестирования в формате JUnit.xml\r\n\r\n\tgen \u003cfeatures-path\u003e [ключи]\r\n\t\tСоздает заготовки шагов для указанных Gherkin-спецификаций\r\n\t\tПараметры:\r\n\t\t\tfeatures-path - путь к файлам *.feature.\r\n\t\t\t\tМожно указывать как каталог, так и конкретный файл.\r\n\r\nВозможные общие ключи:\r\n\t-require \u003cпуть каталога или путь файла\u003e - путь к каталогу фича-файлов или к фича-файлу, содержащим библиотечные шаги.\r\n\t\tЕсли эта опция не задана, загружаются все os-файлы шагов из каталога исходной фичи и его подкаталогов.\r\n\t\tЕсли опция задана, загружаются только os-файлы шагов из каталога фича-файлов или к фича-файла, содержащих библиотечные шаги.\r\n\r\n\t-out \u003cпуть лог-файла\u003e\r\n\t-debug \u003con|off\u003e - включает режим отладки (полный лог + остаются временные файлы)\r\n\t-verbose \u003con|off\u003e - включается полный лог\r\n```\r\n\r\nДля подсказки по конкретной команде наберите\r\n`bdd help \u003cкоманда\u003e`.\r\n\r\n\u003ca id=\"markdown-формат-файла-фичи\" name=\"формат-файла-фичи\"\u003e\u003c/a\u003e\r\n## Формат файла фичи\r\n\r\nФайл фичи должен иметь расширение `feature` и написан согласно синтаксису языка `Gherkin`\r\n\r\n\u003ca id=\"markdown-пример-файла-фичи\" name=\"пример-файла-фичи\"\u003e\u003c/a\u003e\r\n### Пример файла фичи\r\n\r\n```gherkin\r\n# language: ru\r\n\r\nФункционал: Выполнение файловых операций\r\n    Как Пользователь\r\n    Я хочу иметь возможность выполнять различные файловые операции в тексте фич\r\n    Чтобы я мог проще протестировать и автоматизировать больше действий на OneScript\r\n\r\nСценарий: Каталог проекта\r\n    Допустим Я создаю временный каталог и сохраняю его в контекст\r\n    И Я устанавливаю временный каталог как рабочий каталог\r\n    Когда Я сохраняю каталог проекта в контекст\r\n    Тогда Я показываю каталог проекта\r\n    И Я показываю рабочий каталог\r\n```\r\n\r\nили\r\n\r\n```gherkin\r\n# language: ru\r\n\r\nФункционал: Использование программного контекста\r\n\tКак Разработчик\r\n\tЯ Хочу чтобы шаги разных сценариев могли обмениваться данными через програмнный контекст продукта\r\n\r\nСценарий: Первый сценарий\r\n\r\n  Когда Я сохранил ключ \"Ключ1\" и значение 10 в программном контексте\r\n  И я получаю ключ \"Ключ1\" и значение 10 из программного контекста\r\n\r\nСценарий: Следующий сценарий\r\n\r\n  Тогда я получаю ключ \"Ключ1\" и значение 10 из программного контекста\r\n```\r\n\r\n\u003ca id=\"markdown-формат-файла-шагов\" name=\"формат-файла-шагов\"\u003e\u003c/a\u003e\r\n## Формат файла шагов\r\n\r\nЭто обычный os-скрипт, который располагает в подкаталоге `step_definitions` относительно файла фичи.\r\n\r\nВ этом файле должна быть служебная функция `ПолучитьСписокШагов`, которая возвращает массив всех шагов, заданных в этом скрипте.\r\n\r\nТакже внутри файла шагов могут располагаться специальные методы-обработчики (хуки) событий `ПередЗапускомСценария`/`ПослеЗапускаСценария`\r\n\r\n\u003ca id=\"markdown-пример-файла-шагов\" name=\"пример-файла-шагов\"\u003e\u003c/a\u003e\r\n### Пример файла шагов\r\n\r\n```bsl\r\n// Реализация шагов BDD-фич/сценариев c помощью фреймворка https://github.com/artbear/1bdd\r\n\r\nПерем БДД; //контекст фреймворка 1bdd\r\n\r\n// Метод выдает список шагов, реализованных в данном файле-шагов\r\nФункция ПолучитьСписокШагов(КонтекстФреймворкаBDD) Экспорт\r\n\tБДД = КонтекстФреймворкаBDD;\r\n\r\n\tВсеШаги = Новый Массив;\r\n\r\n\tВсеШаги.Добавить(\"ЯСохранилКлючИЗначениеВПрограммномКонтексте\");\r\n\tВсеШаги.Добавить(\"ЯПолучаюКлючИЗначениеИзПрограммногоКонтекста\");\r\n\r\n\tВозврат ВсеШаги;\r\nКонецФункции\r\n\r\n// Реализация шагов\r\n\r\n// Процедура выполняется перед запуском каждого сценария\r\nПроцедура ПередЗапускомСценария(Знач Узел) Экспорт\r\n\r\nКонецПроцедуры\r\n\r\n// Процедура выполняется после завершения каждого сценария\r\nПроцедура ПослеЗапускаСценария(Знач Узел) Экспорт\r\n\r\nКонецПроцедуры\r\n\r\n//Я сохранил ключ \"Ключ1\" и значение 10 в программном контексте\r\nПроцедура ЯСохранилКлючИЗначениеВПрограммномКонтексте(Знач Ключ, Знач Значение) Экспорт\r\n\tБДД.СохранитьВКонтекст(Ключ, Значение);\r\nКонецПроцедуры\r\n\r\n//я получаю ключ \"Ключ1\" и значение 10 из программного контекста\r\nПроцедура ЯПолучаюКлючИЗначениеИзПрограммногоКонтекста(Знач Ключ, Знач ОжидаемоеЗначение) Экспорт\r\n\tНовоеЗначение = БДД.ПолучитьИзКонтекста(Ключ);\r\n\tОжидаем.Что(НовоеЗначение).Равно(ОжидаемоеЗначение);\r\nКонецПроцедуры\r\n```\r\n\r\n\u003ca id=\"markdown-api-фреймворка\" name=\"api-фреймворка\"\u003e\u003c/a\u003e\r\n## API фреймворка\r\n\r\nЕсть несколько вариантов использования API фреймворка из кода реализации шагов.\r\n\r\nОсновная документация по шагам находится [в каталоге документации](./docs/readme.md#api-фреймворка)\r\n\r\n\u003ca id=\"markdown-стандартная-библиотека\" name=\"стандартная-библиотека\"\u003e\u003c/a\u003e\r\n## Стандартная библиотека\r\n\r\nСтандартные библиотечные шаги, подключаемые автоматически для любой фичи, находятся в каталоге `features/lib`\r\n\r\n- `ВыполнениеКоманд.feature` - выполнение команд системы и запуск процессов\r\n- `ФайловыеОперации.feature` - создание файлов/каталогов, их копирование, анализ содержимого файлов\r\n\r\nОсновная документация по шагам находится [в каталоге документации](./docs/readme.md#стандартная-библиотека-шагов)\r\n\r\n\u003ca id=\"markdown-расширения\" name=\"расширения\"\u003e\u003c/a\u003e\r\n## Расширения для Visual Studio Code\r\n\r\nДля Visual Studio Code созданы расширения, облегчающие работу с файлами фич:\r\n\r\n- [Snippets and Syntax Highlight for Gherkin (Cucumber)](https://marketplace.visualstudio.com/itemdetails?itemName=stevejpurves.cucumber) - подсветка синтаксиса и автодополнение ключевых слов Gherkin.\r\n- [Gherkin step autocomplete](https://marketplace.visualstudio.com/itemdetails?itemName=silverbulleters.gherkin-autocomplete) - автодополнение шагов в файлах фич.\r\n\tУ этого расширения есть настройка `gherkin-autocomplete.featureLibraries`, которая позволяет подключить внешние по отношению к проекту библиотеки шагов (например, установленную вместе с 1bdd).\r\n\tПо `Shift+F12`/`Shift+Alt+F12` можно перейти к реализации текущего шага - если она есть в текущем проекте и/или внешних библиотеках.\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartbear%2F1bdd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fartbear%2F1bdd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fartbear%2F1bdd/lists"}