DEV Community

Brunt
Brunt

Posted on

pytest-html-plus — Your Default Pytest Reporter

Why another Pytest HTML reporter?

If you’ve been running Pytest for a while, chances are you’ve used pytest-html. It works. It’s stable. It does the job.

But over time, many teams run into the same quiet problems:

  • Reports feel static
  • Debugging still requires jumping between logs, terminals, and CI artifacts
  • Customization often means patching or workarounds
  • The report exists… but it makes you think than looking at quick debugging.

pytest-html-plus was built to solve those gaps — not by replacing testing or test fundamentals, but by rewriting how simpler debugging has to be or what a default test report should feel like in 2025.

What “default reporter” actually means

  • A default reporter should:
  • Work out of the box
  • Require zero configuration and codechanges to be useful
  • Guide you when data is missing
  • Stay readable even as test suites grow
  • Fit naturally into CI pipelines

pytest-html-plus is designed with exactly that mindset.

You install it, run Pytest, and you already get something meaningful. No Java needed, No extra decorators needed, no conftest, no merge plugins(even if you use xdist or rerun-failures)

No ceremony.

What makes pytest-html-plus different

1. Reports that explain themselves

Instead of silently showing empty values, the report tells you why something is missing and how to fix it.

Example:

Missing environment?
→ The report nudges you to use --rp-env

Metadata not populated?
→ It tells you what flag or config to add

This removes tribal knowledge and makes reports usable even for someone new to the project.

2. Designed for real debugging with auto screenshots

The report is structured to help you answer real questions:

  • What failed? pytest-html-plus displays all the failures right there
  • Where did it fail? pytest-html-plus displays all the errors, traces, logs in seperate block that you can simply click copy to send to your team or debug.
  • Under which environment and configuration? pytest-html-plus lets you use your own filters when you pass pytest.mark.{filtername}
  • What context do I need right now? pytest-html-plus shows the external JIRA tickets or test cases if you had tagged it using markers like pytest.mark.link in your codebase

You spend less time re-running tests just to reproduce context.

3. CI-first, not CI-afterthought

pytest-html-plus plays nicely with:

  • GitHub Actions
  • Archived artifacts
  • JSON and optional xml outputs that can be reused by other tools or test management tools.

The report is not just an HTML file — it’s part of a pipeline and its unified without making you use a dozen of other plugins or keep writing conftest.

4. Opinionated, but not heavy

The goal is clarity, not feature overload.

Instead of adding 20 toggles and panels, the focus is on:

  • Clean layout
  • Warm, readable colors
  • Information density without noise

If a feature makes the report harder to scan, it doesn’t belong in pytest-html-plus.

Why should it be my default reporter?

If pytest-html is the reliable base,
pytest-html-plus is the version shaped by years of daily test runs, CI failures at 2 a.m., and “why didn’t the report tell me this?” moments.

For many teams, it naturally becomes the default reporter.

  • Teams running Pytest daily
  • Engineers debugging from CI and in the local runs
  • Projects where reports are read by humans, not just machines
  • Anyone who wants reports to help, not just exist

Closing thought

Good tooling fades into the background. Great tooling quietly makes you faster.

pytest-html-plus aims to be the reporter you stop thinking about — because it already gave you what you needed.

Top comments (0)