Skip to content

reporterplus/pytest-html-plus

Test your code, not your reporting setup.

Get started with rich pytest reports in under 3 seconds. Just install — no setup required. The simplest, fastest reporter for pytest.

Get a self-contained, actionable, easy-to-read single page HTML unified reports summarizing all your test results — no hassle, just clarity. Detect flaky tests, attach screenshots automatically without hooks and optionally send reports via email**. Works beautifully with or without xdist.

➡️ View Demo Report

Docs PyPI Downloads PyPI Python Versions License Unit Tests codecov


Already using pytest-html or Allure?

No uninstall needed — pytest-html-plus works alongside pytest-html. Install it, run your suite, and see what you've been missing. Most teams uninstall pytest-html within the same day.

pip install pytest-html-plus

Your existing pytest --html=report.html commands keep working unchanged.

Feature pytest-html Allure pytest-html-plus
Self-contained single HTML file
No server or CLI tool needed
Zero config — works out of the box
xdist parallel run support ⚠️ extra plugin ✅ built-in
Screenshots (no hooks or decorators) ❌ requires decorators
Automatic log & print() capture
Flaky test detection + retry history
Slow test highlighting
Traceability links (Jira, Testmo, etc.)
JUnit XML export (merged, one flag) ❌ extra steps
Run metadata (branch, commit, env)
Reusable config profiles
Unlinked test detection
Copy logs & traces to clipboard
Email reports
Mobile-friendly layout
Report size 🟢 single file 🔴 many files 🟢 single file

🚀 Installation

pip install pytest-html-plus
# or with Poetry
poetry add pytest-html-plus

Pytest HTML Plus Action

If you don't want the burden of installing pytest-html-plus manually and your project already manages dependencies with requirements.txt or Poetry, use this GitHub Action to generate rich pytest reports automatically.

🚀 Checkout on GitHub Marketplace Documentation

Pytest HTML Plus VSCode

VS Code Marketplace [Installs] Docs

✨ Features

🧩 Seamless Combined XML Export to your favourite test management tools — No Plugins Needed

Export a fully merged JUnit XML report effortlessly — no external tools or plugins required. (No More merge html additional plugins or steps in your YAML to feed xml reports)

✔ Links, logs, stdout/stderr, and even flaky history — all included ✔ Works out-of-the-box with your test management tools (like TestRail, XRay, Zephyr) ✔ Just one flag. No extra lines of code. Total traceability.

ScreenRecording2025-07-06at11 38 21PM-ezgif com-video-to-gif-converter

🔄 Stop Guessing — See What's Breaking Your Flaky Tests

Instantly see how your tests behave across retries — from failure to recovery. Spot patterns like cache issues, race conditions, and random crashes without the guesswork.

ezgif com-video-to-gif-converter

🏷️ Tag your tests on the fly!

With dynamic markers, you can assign tags like api, critical, or slow — or any custom label — at runtime using standard pytest.mark.*. No need for custom marker definitions. Perfect for smarter filtering, reporting, and analysis.

ScreenRecording2025-07-12at10 15 33PM-ezgif com-video-to-gif-converter

📦 Ship reports with provenance 📜 — full run metadata included 📋 and copy-ready.

ezgif com-video-to-gif-converter

📋⚡ Turn failure context into a single click — copy logs, traces, and errors instantly for your team.

ezgif com-video-to-gif-converter (1)

Easily track Untracked test scenarios

ScreenRecording2025-06-29at1 06 02AM-ezgif com-video-to-gif-converter

🔍 Universal Test Search + Smart Link Navigation

Whether you're trying to trace coverage or track unlinked test cases — this search has your back!

Just start typing, and the dashboard will instantly filter tests by:

✅ Test name

✅ Linked issue/documentation IDs (like JIRA, Testmo, Notion, etc.)

✅ Custom URLs or keywords present in the links

ScreenRecording2025-06-21at3 10 06PM-ezgif com-video-to-gif-converter

📸 Screenshot Support: View screenshots directly in the report to understand failures faster.

📧 Email Test Reports: Send your reports via email effortlessly using SendGrid integration.

Screenshot 2025-05-28 at 4 38 49 PM

🐢 Spot Slow Tests: Highlights the slowest tests so you know where to optimize your suite.

ScreenRecording2025-06-21at2 52 49PM-ezgif com-video-to-gif-converter

📝 Comprehensive output capture: All your test logs with loggers, print() statements, and screenshots are automatically captured and embedded in the report...

ezgif-744a5d34a4c46d

Complete Feature List

Feature Details
📊 Single-file HTML report Fully self-contained — no external CSS, JS, or image folders to archive
🔄 Flaky test detection Detects tests that fail then pass on retry; shows full retry history
📸 Automatic screenshots Selenium & Playwright screenshots captured and embedded with no conftest hooks
🧩 JUnit XML export Merged XML output compatible with TestRail, Xray, and Zephyr (--generate-xml)
🔗 Traceability links Attach Jira, Testmo, Notion, or any URL to a test; rendered and searchable in the report
🏷️ Dynamic markers Tag tests at runtime with pytest.mark.* — no marker pre-registration needed
🔍 Universal search Filter tests by name, issue ID, or any URL keyword in real time
🐢 Slow test highlighting Slowest tests in the run automatically flagged
📋 Copy-to-clipboard Copy test path, logs, trace, and errors in one click
📦 Run metadata Branch, commit SHA, environment, and custom metadata embedded in the report header
📝 Comprehensive log capture print(), logger output, and stdout/stderr automatically captured per test
xdist support Parallel runs with pytest-xdist produce a single merged report, no extra steps
🌐 Auto-open report --should-open-report opens the report in your browser after a run (always / failed / never)
📄 JSON report Raw JSON output (--json-report) for custom dashboards or post-processing
🔎 Unlinked test detection Instantly filter tests that have no associated issue or documentation link
⚙️ Reusable config profiles Define named profiles in pyproject.toml (--profile=ci) — no more repeated CLI flags
📱 Mobile-friendly layout Report renders cleanly on any screen size
📧 Email reports Send reports via SendGrid integration (--send-email)

Target Audience

This plugin is aimed at those who are:

  • Tired of writing extra code just to generate reports or capture screenshots

  • Manually attaching logs or outputs to test results

  • Are frustrated with archiving folders full of assets, CSS, JS, and dashboards just to share test results.

  • Don't want to refactor existing test suites or tag everything with new decorators just to integrate with a reporting tool.

  • Prefer simplicity — a zero-config, zero code, lightweight report that still looks clean, useful, and polished.

  • Want "just enough" — not bare-bones plain text, not a full dashboard with database setup — just a portable HTML report that STILL supports features like links, screenshots, and markers.

Contributing

We welcome pull requests, issues, and feature suggestions from the community.

See the contribution guide for setup instructions.

📜 License

MIT