junit-xml
Creates JUnit XML test result documents that can be read by tools such as Jenkins
Decision gist · record as of 2026-08-14
Yes, if you need to export Python test results to Jenkins, Bamboo, or any CI system that consumes JUnit XML. The package is stable, permissively licensed, and has minimal dependencies. Be aware that maintenance is dormant; if your CI platform changes its XML schema expectations, you may need to fork or patch the library yourself. For standard use cases, it remains a reliable choice.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with a single lightweight dependency (six).
- Maintenance is dormant—last release was 2020-02-22 and no commits since 2023-12-20—but the package is marked Production/Stable and has accumulated substantial adoption.
License · maintenance · safety
MIT (permissive) — MIT license (permissive) imposes no restrictions on use, modification, or distribution in proprietary or open-source projects.
last release 2020-02-22 (2365 days) · last repo commit 2023-12-20 · 123 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 12,784,944 downloads/mo, #1,305 on PyPI
Alternatives
Verify before relying
pip install junit-xml
from junit_xml import TestSuite, TestCase
test_cases = [TestCase('Test1', 'some.class.name', 123.345, 'stdout', 'stderr')]
ts = TestSuite("my suite", test_cases)
print(TestSuite.to_xml_string([ts]))- Whether dormant maintenance status poses a risk if Jenkins or Bamboo XML schema requirements change.
- Current compatibility with modern Python versions beyond what classifiers declare.
- Whether the package remains compatible with current versions of Jenkins and Bamboo.
What it is and what it does
junit-xml is a Python library that serializes test results into JUnit XML format, the de facto standard for test reporting in CI/CD platforms like Jenkins and Bamboo. It provides TestSuite and TestCase classes that you populate with test metadata (name, class, duration, stdout, stderr) and then export to XML via to_xml_string() or to_file()—the library handles formatting, pretty-printing, and automatic stripping of illegal XML characters.
The package is a thin, focused tool: it does not run tests or integrate with test frameworks directly, but rather accepts test result data and produces the XML that CI systems consume to generate dashboards and reports. It has one runtime dependency (six) and installs with low friction. While maintenance is dormant (last release 2020-02-22), the package is marked Production/Stable and widely deployed.
Use it for
- Export test results from a custom Python test runner to Jenkins for visualization and trend tracking.
- Generate JUnit XML from test runs to feed into Bamboo CI pipelines.
- Produce machine-readable test reports from a Python test suite for integration with CI/CD systems.
- Batch-convert test results from multiple Python test tools into a standardized format for aggregated reporting.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to export Python test results to Jenkins, Bamboo, or any CI system that consumes JUnit XML.
The package is stable, permissively licensed, and has minimal dependencies. Be aware that maintenance is dormant; if your CI platform changes its XML schema expectations, you may need to fork or patch the library yourself. For standard use cases, it remains a reliable choice.
Install
junit-xml on PyPI
Before you install
Low install friction with a single lightweight dependency (six). Maintenance is dormant—last release was 2020-02-22 and no commits since 2023-12-20—but the package is marked Production/Stable and has accumulated substantial adoption.
License in practice
MIT license (permissive) imposes no restrictions on use, modification, or distribution in proprietary or open-source projects.
Quickstart
pip install junit-xml
from junit_xml import TestSuite, TestCase
test_cases = [TestCase('Test1', 'some.class.name', 123.345, 'stdout', 'stderr')]
ts = TestSuite("my suite", test_cases)
print(TestSuite.to_xml_string([ts]))
Verify before relying
- Whether dormant maintenance status poses a risk if Jenkins or Bamboo XML schema requirements change.
- Current compatibility with modern Python versions beyond what classifiers declare.
- Whether the package remains compatible with current versions of Jenkins and Bamboo.
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagesix |
| Maintenance | Dormant 2,365 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 12,784,944 / month, #1,305 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: Freely DistributableLicense :: OSI Approved :: MIT LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Topic :: Software Development :: Build ToolsTopic :: Software Development :: Testing |
Evidence: junit_xml-1.9-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “jenkins test result xml”
- junit-xmlGenerates JUnit XML test result documents compatible with Jenkins and…
- junit-xml-2Generates JUnit XML test result reports from Python test data,…
- pylint-junitGenerates JUnit-formatted XML reports from pylint output for…
Give your agent the search over MCP, or paste the wish link into any chat.
More Testing packages
Pluggy provides a plugin system that lets you define hook specifications and register implementations to be called in sequence, enabling extensible Python applications without tight coupling.
Install it if you're building an extensible application or framework.
pytest is a testing framework that lets you write test functions using plain assert statements and automatically discovers and runs them, with detailed failure reporting.
virtualenv creates isolated Python environments where packages can be installed independently without affecting the system Python or other projects.
Coverage.py measures which lines of Python code are executed during test runs, reporting coverage percentages and identifying untested code paths.
Install it if you want to measure test completeness or enforce coverage thresholds in your project.
pytest-asyncio is a pytest plugin that enables writing and running async test functions using the asyncio library, allowing developers to await code directly within test cases.
Install it if you write tests for any asyncio-based code.
A pytest plugin that generates test reports in Common Test Report Format (CTRF) as JSON, compatible with pytest-xdist and pytest-playwright for distributed and browser-based testing.
Install it if you need CTRF-formatted test output for CI/CD integration or cross-tool reporting.
See also junit-xml-2 · pylint-junit · junitparser · flake8-formatter-junit-xml · xunitparser · junit2html · xmlrunner · flake8-junit-report · flake8-junit-report-basic · codecov