Freedom251 › BDD Testing Tools
pytest-bdd

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
| Plan | Billed and limits | Price |
|---|---|---|
| pytest-bdd | MIT-licensed Python package · requires Python 3.10 or newer | Free |
As pytest-bdd.readthedocs.io lists them, read 8 Oct 2026. The maker's own page has the final word.
Getting started
- Open the pytest-bdd documentation website.
- Use Python 3.10 or newer.
- Install the package with `pip install pytest-bdd`.
- 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
- BDD Testing Tools#18 of 30