skillfed

junit2html

Generate HTML reports from Junit results

junit2html v31.1.4 2.3M downloads/30d#3,164 on PyPI
Permissive license License :: OSI Approved :: MIT License Active released

What it is and what it does

junit2html reads JUnit or XUnit XML test result files—the standard format produced by most test runners—and generates a standalone HTML report that displays test outcomes, pass/fail status, and execution details in a browser-viewable format. It depends only on jinja2 for templating, making it lightweight and straightforward to integrate into CI/CD pipelines or local test workflows.

The package is actively maintained, requires Python 3.8 or later, and carries an MIT license. It sits in the top 5000 PyPI packages by download volume, suggesting it is a stable, widely-used tool for teams that need human-readable test reports without setting up complex reporting infrastructure.

Use it for:

  • Convert test results from pytest, unittest, or other test runners into shareable HTML reports for stakeholders.
  • Generate test reports in CI/CD pipelines to archive or display alongside build artifacts.
  • Create a single-file HTML report for offline viewing of test outcomes without external dependencies.
  • Integrate test result visualization into custom reporting dashboards or documentation.
  • Quickly inspect test failures and execution times in a formatted, clickable HTML interface.

Worth the install?

AI-flagged interpretation of the facts on this page — verify before relying

Converts JUnit or XUnit XML test result files into a single-file HTML report for viewing test outcomes in a browser.

Yes. Low install friction, active maintenance, permissive MIT license, and no known vulnerabilities make this a straightforward choice for teams needing to convert JUnit XML results to HTML. The single jinja2 dependency keeps it lightweight. Suitable for CI/CD integration and local test workflows.

Install

junit2html on PyPI

pip

pip install junit2html

uv

uv add junit2html

poetry

poetry add junit2html

Installing junit2html

Before you install

Low friction install with a single runtime dependency (jinja2). Actively maintained as of 64 days ago with support for current Python versions (3.8+).

License in practice

MIT license permits commercial and private use with minimal restrictions; suitable for most projects.

Quickstart

pip install junit2html

from junit2html import junit2html
junit2html.main(['--input', 'results.xml', '--output', 'report.html'])

Requires Python 3.8 or later.

Verify before relying

  • Whether the package handles large XML files or has performance constraints.
  • What styling and layout options are available in the generated HTML reports.
  • Whether it supports custom templates or report customization beyond defaults.

Package facts

License License :: OSI Approved :: MIT License (permissive)
Python support supports the current Python release (>=3.8)
Install friction low — pure-Python wheel
Runtime dependencies 1 — jinja2
Maintenance actively maintained — 64 days since the last release
First released
Downloads 2,283,985/month — #3,164 on PyPI (30-day window, as of 2026-08-14)
Known vulnerabilities none known (OSV.dev, checked 2026-08-14)

Evidence: junit2html-31.1.4-py3-none-any.whl

Tags

junit xml to html reporttest results html visualizationxunit xml converterjunit report generatortest output htmljunit results viewerxml test report html
test-reportingci-cdjunit-xml

More Testing packages