FREEDOM251

Freedom251 › BDD Testing Tools

pytest-bdd

Free plan LinuxMacWindows

Visit pytest-bdd Alternatives Pricing

pytest-bdd's own site

What pytest-bdd is

pytest-bdd is a free Python package for behavior-driven development and requirements testing. It implements a subset of Gherkin and runs scenarios as pytest tests, so a separate test runner is not required. Feature steps can reuse pytest fixtures through dependency injection. Step definitions can parse arguments using string, parse, cfparse, or regular-expression parsers. The scenarios helper binds tests from feature files or folders, including recursively discovered files. Scenario outlines allow parameterized cases, and the documentation covers multiple tagged example tables. Step functions can receive Gherkin data tables as lists of rows and docstrings as strings. For browser testing, a documented example uses pytest-splinter to provide a browser fixture. Installation uses `pip install pytest-bdd`. The package requires Python 3.10 or newer, and its listed operating systems include Linux, macOS, and Windows. It is MIT-licensed and free; the listed release is version 9.0.0, released September 30, 2026.

Who it suits

pytest-bdd suits Python teams that want to express requirements as Gherkin scenarios and run them with pytest. It also fits projects that want to reuse pytest fixtures in feature steps or parameterize scenarios.

What it does well

  • Runs Gherkin scenarios as pytest tests
  • Reuses pytest fixtures through dependency injection
  • Supports scenario outlines and tagged example tables
  • Provides Gherkin tables and docstrings to step functions
  • MIT-licensed and free

What to know first

  • Requires Python 3.10 or newer
  • Implements only a subset of Gherkin
  • Browser testing example uses pytest-splinter

Limits

pytest-bdd implements a subset of Gherkin. The package requires Python 3.10 or newer.

Plans

PlanBilled and limitsPrice
pytest-bddMIT-licensed Python package · requires Python 3.10 or newerFree

As pytest-bdd.readthedocs.io lists them, read 8 Oct 2026. The maker's own page has the final word.

Getting started

  1. Open the pytest-bdd documentation website.
  2. Use Python 3.10 or newer.
  3. Install the package with `pip install pytest-bdd`.
  4. Write feature scenarios and bind them to pytest tests.

Verdict

pytest-bdd brings Gherkin-style scenarios into pytest, with fixture reuse and parameterized examples. Check the Python requirement and the subset of Gherkin it implements before adopting it.

Questions

How much does pytest-bdd cost?

The listed plan is free. It is an open-source package licensed under the MIT License.

Which operating systems does it support?

The listed platforms are Linux, macOS, and Windows.

Does pytest-bdd run tests with pytest?

Yes. It runs scenarios as pytest tests without a separate test runner.

Can it be used for browser testing?

The documentation’s browser testing example uses pytest-splinter to provide a browser fixture.

What Python version does it require?

Package metadata requires Python 3.10 or newer.

Facts from pytest-bdd's own pages

Browser integration
The documentation’s browser test example uses pytest-splinter to provide a browser fixture. · pytest-bdd.readthedocs.io, 8 Oct 2026
Fixture reuse
Pytest fixtures can be reused in feature steps through dependency injection. · pytest-bdd.readthedocs.io, 8 Oct 2026
Gherkin data
Step functions can receive Gherkin data tables as lists of rows and step docstrings as strings. · pytest-bdd.readthedocs.io, 8 Oct 2026
Installation
The documentation gives `pip install pytest-bdd` as the installation command. · pytest-bdd.readthedocs.io, 8 Oct 2026
License
PyPI lists the package as licensed under the MIT License. · pypi.org, 8 Oct 2026
Purpose
pytest-bdd implements a subset of Gherkin to automate requirements testing and support behavior-driven development. · pytest-bdd.readthedocs.io, 8 Oct 2026
Pytest integration
It runs scenarios as pytest tests without requiring a separate test runner. · pytest-bdd.readthedocs.io, 8 Oct 2026
Python requirement
The package metadata requires Python 3.10 or newer. · pypi.org, 8 Oct 2026
Release
PyPI lists version 9.0.0, released September 30, 2026. · pypi.org, 8 Oct 2026
Scenario discovery
The scenarios helper can bind scenarios found in feature files or folders, including recursively discovered files in a folder. · pytest-bdd.readthedocs.io, 8 Oct 2026
Scenario outlines
Scenario outlines support parameterized cases, and the documentation describes multiple tagged example tables. · pytest-bdd.readthedocs.io, 8 Oct 2026
Step arguments
Step definitions can use string, parse, cfparse, or regular-expression parsers for step arguments. · pytest-bdd.readthedocs.io, 8 Oct 2026
Supported operating systems
PyPI classifiers list macOS, Windows, and POSIX operating systems. · pypi.org, 8 Oct 2026

Where pytest-bdd stands on Freedom251

Look at these too