Repolode
pytest-dev

pytest-dev/pytest-bdd

BDD-фреймворк, который запускает feature-файлы Gherkin как тесты pytest без отдельного тестового раннера.

Звёзды
1,473
Форки
256
Открытые issues
87
Последний коммит
4 дня назад

Что это?

pytest-bdd реализует подмножество языка Gherkin и позволяет командам описывать требования в feature-файлах с шагами Given, When и Then, связывая их с функциями тестов на Python. Поскольку фреймворк работает поверх pytest, BDD-сценарии выполняются вместе с модульными и функциональными тестами и используют ту же настройку CI.

Реализации шагов — это обычные функции pytest, поэтому существующие фикстуры можно передавать в шаги через внедрение зависимостей. Шаг Given также может установить именованную фикстуру с помощью target_fixture — так состояние, подготовленное на этапе настройки, передаётся между шагами без общего глобального контекста. Аргументы шагов можно разбирать с помощью парсеров string, parse, cfparse или re.

Библиотека также поддерживает шаблоны сценариев с несколькими таблицами примеров, блоки Background, правила, datatables и docstrings, а также сопоставление тегов с маркерами: благодаря этому сценарии можно выбирать с помощью pytest -m или -k.

Ключевые возможности

  • 01Запускает feature-файлы Gherkin как обычные тесты pytest
  • 02Передаёт фикстуры pytest в шаги Given, When и Then
  • 03Поддерживает шаблоны сценариев с несколькими таблицами примеров
  • 04Предоставляет парсеры аргументов шагов string, parse, cfparse и regex
  • 05Сопоставляет теги Gherkin с маркерами pytest для выбора тестов

Сценарии использования

  • Написание приёмочных тестов по требованиям продукта в feature-файлах на естественном языке
  • Повторное использование существующих фикстур pytest для функционального тестирования веб-приложений или API
  • Организация набора тестов Python по функциям с выбором тестов по тегам

Быстрый старт

  1. 1

    Установите pytest-bdd из PyPI

    pip install pytest-bdd

Что важно знать

  • Каждый файл feature может содержать только одну feature.
  • Шаги должны быть реализованы как функции Python, связанные с pytest, поэтому это работает только в наборах тестов Python.

В подборках

Темы

#bdd#testing#pytest#gherkin#python#bdd-framework#pytest-plugin#python3

Частые вопросы

Что такое pytest-bdd?
BDD-фреймворк, который запускает feature-файлы Gherkin как тесты pytest без отдельного тестового раннера. pytest-bdd реализует подмножество языка Gherkin и позволяет командам описывать требования в feature-файлах с шагами Given, When и Then, связывая их с функциями тестов на Python. Поскольку фреймворк работает поверх pytest, BDD-сценарии выполняются вместе с модульными и функциональными тестами и используют ту же настройку CI.
pytest-bdd можно использовать бесплатно? Какая у него лицензия?
pytest-bdd распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
pytest-bdd всё ещё поддерживается?
Активно поддерживается. Последний коммит в pytest-bdd — 2 нояб. 2026 г..
Для чего можно использовать pytest-bdd?
Написание приёмочных тестов по требованиям продукта в feature-файлах на естественном языке Повторное использование существующих фикстур pytest для функционального тестирования веб-приложений или API Организация набора тестов Python по функциям с выбором тестов по тегам
Как установить pytest-bdd?
Установите pytest-bdd из PyPI: pip install pytest-bdd
Где скачать pytest-bdd?
Исходный код и инструкции по установке — на GitHub: https://github.com/pytest-dev/pytest-bdd

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

JavaScript-фреймворк для сквозного тестирования браузерных и мобильных приложений: тесты пишутся как понятные пользователю шаги и запускаются на разных движках.

4,3 тыс.+5 за неделю756JavaScriptMITОбновлён 18 часов назад

Опенсорсный AI-агент для тестирования, который превращает Gherkin feature-файлы в автоматизированные сквозные тесты браузера, API, безопасности, доступности и визуального интерфейса.

1,2 тыс.+10 за неделю202PythonAGPL-3.0Активно поддерживаетсяОбновлён 9 дней назад