allure-python is the official set of Allure Report adapters for Python test frameworks — pytest, behave, Robot Framework, pytest-bdd, and nose2 — built for Python teams that run automated tests and want Allure's report model without writing their own result-formatting layer.
What it is
allure-python is a monorepo of adapters that connect Python test frameworks to Allure Report. Each adapter ships as its own PyPI package: allure-pytest and allure-pytest-bdd are developed as pytest plugins, allure-behave is an external formatter, allure-robotframework is a Listener for Robot Framework, and allure-nose2 covers the nose2 runner. Beneath them sits allure-python-commons, the common engine for all modules, which the README notes is useful for building an integration with a homemade framework. That makes the repository both a set of shipped adapters and a reusable foundation for custom ones.
The concrete problem is the gap between what Python test runners emit and what the Allure report model expects. Instead of every team writing its own reporter to convert pytest, behave, or Robot Framework output into the allure2 format, the repository supplies that conversion already. allure-behave is described as an external formatter that produces test results in allure2 format, and allure-robotframework is a Listener, so it hooks into Robot Framework without requiring changes to existing autotests. The result is one consistent result format across several frameworks in the same project.
Key capabilities
- allure-pytest — pytest plugin distributed via PyPI, emitting Allure results from ordinary pytest runs.
- allure-behave — external behave formatter that produces test results in allure2 format.
- allure-robotframework — Robot Framework Listener interface that does not require changing autotests.
- allure-pytest-bdd — pytest plugin covering the pytest-bdd style.
- allure-nose2 — adapter for the nose2 runner.
- allure-python-commons — common engine shared by all modules, usable to integrate with homemade frameworks.
- allure-python-commons-test — a pack of hamcrest matchers for validating results in allure2 JSON format.
Who uses it and how
- Teams running pytest suites install allure-pytest and get Allure result files as output of a normal test run.
- BDD-oriented teams using behave or pytest-bdd attach the matching adapter so feature-file scenarios land in the report.
- Robot Framework teams with large existing test bases use allure-robotframework, because the Listener approach needs no edits to the autotests themselves.
- Teams maintaining in-house test runners use allure-python-commons as the engine for their own adapter rather than reimplementing result serialization.
Getting started
Install the adapter that matches the framework — pip install allure-pytest, pip install allure-behave, or pip install allure-robotframework — since each package is distributed via PyPI. Consuming the results still requires Allure Report itself; documentation and a live demo live at https://allurereport.org/.
How it compares
No paid products that this project replaces are listed in the facts for this entry, and no comparable Python adapters are named either. It therefore stands alone in this registry.
When to use it — and when not to
Choose it when the team already runs one of the supported Python frameworks and wants Allure Report output without writing reporting glue, and when an Allure Report viewer is available to consume the results. Do not choose it if a single self-contained reporting stack is required: the adapters only produce allure2 result data, so report generation and hosting stay a separate concern. The repository carries 129 open issues, and the README is thin in places — the nose2 section carries no descriptive text at all.