Find the failure. Spot the pattern. Debug together.
A self-contained pytest report for faster debugging, with automatic screenshots, similar-error navigation, shareable test links, and parallel execution support
🚀 Quick Start
pip install pytest-html-plus
# or
poetry add pytest-html-plus
pytest
By default, that generates a portable HTML report and structured JSON output. No hooks, decorators, or reporting server are required.
Why pytest-html-plus?
- ⚡ Produce one unified report with or without
pytest-xdist. - 📸 Capture failure screenshots automatically for Selenium and Playwright tests.
- 📋 Keep errors, traces, logs, stdout, and stderr together in one report.
- 🔄 Understand flaky tests with complete retry history.
- 🔗 Share a direct link to an individual test result.
- 🔍 Find tests, failures, traces, issue references, and documentation links from the same report.
✨ Features
⚡ One Unified Report with xdist
Run tests in parallel and receive one merged HTML and JSON report without an additional merge plugin or post-processing step.
📸 See What Failed Automatically
Capture Selenium and Playwright screenshots automatically and view them alongside the relevant failure context, with no custom hooks or decorators required.
📋 Everything You Need to Investigate a Failure
Review errors, traces, logs, stdout, stderr, and screenshots together. Copy the context you need in one click and use --plus-output=failed-only to keep passing-test output compact.
🔄 Understand Flaky Tests Across Every Retry
See how a test behaves across retries, from initial failure to recovery. Spot patterns such as cache issues, race conditions, and intermittent crashes without guesswork.
🔗 Share Any Test with a Direct Link
Copy a direct link to any test result and share it with your team. The report opens at the linked test, reveals it, expands its details, and highlights it, so teammates can jump straight to the relevant context without searching through the report.
Similar Errors — Spot repeated failure patterns without inspecting every test
The layers badge identifies tests with matching failure messages and lets you navigate between their results. Similar messages may have different causes. Enabled by default; disable with --plus-similar-errors=false.
🔍 Find the Context You Need
Search tests, errors, traces, issue references, documentation links, and custom references from the same report.
Try It Without Changing Your Test Suite
pytest-html-plus works alongside existing pytest tooling, so you can evaluate it with your current test suite without adopting a reporting server, rewriting tests, or maintaining reporting infrastructure.
More Built In
Also includes merged JUnit XML export, run metadata, slow-test visibility, reusable profiles, traceability helpers, email delivery, dynamic markers, and configurable output capture.
See all features and configuration options →
Project Status
pytest-html-plus is stable and actively maintained, with its core reporting experience now well established. Future development will focus on compatibility, reliability, and carefully selected improvements that strengthen the core reporting experience.
We're also looking for co-maintainers to help review pull requests, triage issues, and keep the project healthy across future Python and pytest releases.
If you're interested in becoming a long-term contributor, we'd love to hear from you. Please open an issue or start a discussion.
Contributing
We welcome pull requests, issues, and feature suggestions from the community.
See the contribution guide for setup instructions.
📜 License
MIT
Metadata
Release files for pytest-html-plus 1.4.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pytest_html_plus-1.4.0.tar.gz | 30.8 kB | Without provenance | Details for pytest_html_plus-1.4.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pytest_html_plus-1.4.0-py3-none-any.whl | Python 3 | none | any | Details for pytest_html_plus-1.4.0-py3-none-any.whl |
Total release size: 63.6 kB
Release files / pytest_html_plus-1.4.0.tar.gz
| Download URL | pytest_html_plus-1.4.0.tar.gz |
|---|---|
| Size | 30.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
bcf46d8f8066e95efc254d79577cbd6f710dfa8077b316c6de7509e1933e167f
|
|
BLAKE2b-256 checksum How to use checksums |
2c2c5a7fb93845079a9359d185d68b4f63bb1cdcd69d108d706837cdbdec4e69
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Release files / pytest_html_plus-1.4.0-py3-none-any.whl
| Download URL | pytest_html_plus-1.4.0-py3-none-any.whl |
|---|---|
| Size | 32.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1c2e3678fe7424998023621d5417fc2246ed6d28295e2ddbea7f6cde6d24156c
|
|
BLAKE2b-256 checksum How to use checksums |
8eec9538d6627427a51977dd6260303691f7e1afa2495fcc09a85ab34933333d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.15
|
Security for pytest-html-plus 1.4.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.