NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1207 most downloaded on PyPI
Manipulates JUnit/xUnit Result XML files
Last release 1 months ago
01 Sep 2026
Release timing varies
gaps range from 2 weeks to 10 months
Most releases are documented
notes for 38 of 50 stable releases
Nothing withdrawn
no release was ever pulled
10 years old
53 releases · first in 2016
fix #177
fix: #180 add_testsuite regression
fix: #180 add_testsuite regression
add_testsuite regression caused by 5.0.1.One column per quarter.
__add__: mutated arguments after operation thanks @miguelflor.
__add__: mutated arguments after operation thanks @miguelflor.use uv use pytest-cov update ci pre-commit hook publish with uv fix whl test fix whl test 2 smaller matrix lerner ci trusted publishing newer action t
use uv
use pytest-cov
update ci
pre-commit hook
publish with uv
fix whl test
fix whl test 2
smaller matrix
lerner ci
trusted publishing
newer action templates
chore: test
update another action version
update another action
better versioning
Merge branch 'master' of https://github.com/weiwei/junitparser
Merge branch 'master' of https://github.com/weiwei/junitparser
implement #169
implement #169
Fix: Remove encoding from wb open
Fix: Remove encoding from wb open (#168)
write_xml - Remove encoding kwarg to fix binary mode doesn't take an encoding argumentRenamed argument filepath of methods write_xml, TestSuite.write, and JUnitXml.write to file_or_filename, as these methods now support file objects and
Renamed argument filepath of methods write_xml, TestSuite.write, and JUnitXml.write
to file_or_filename, as these methods now support file objects and file-like objects.
Turned positional argument pretty of methods write_xml, TestSuite.write, and JUnitXml.write into keyword argument.
Use as write_xml(obj, filename, pretty=True) and obj.write(filename, pretty=True), respectively.
Removed argument to_console from methods write_xml, TestSuite.write, and JUnitXml.write.
Instead, use write_xml(obj, sys.stdout) and obj.write(sys.stdout), respectively.
Renamed argument filepath of method JUnitXml.fromfile to file,
to reflect that this method supports file objects, file-like objects, and urls.
Setter method TestCase.result used to ignore values of invalid types. This method now throws a ValueError instead.
Method xunit2.TestCase.add_rerun_result has been renamed to add_interim_result result to better reflect class hierarchy
of interim (rerun and flaky) results.
Methods JUnitXml.fromfile, JUnitXml.fromstring, JUnitXml.fromroot always return a JUnitXml instance.
Earlier versions return a TestSuite instance when the root of the file / string / element is a <TestSuite>.
A JUnitXml instance has already been returned by earlier versions when the root of the file / string / element is a <TestSuites>.
If you want to create a TestSuite instance from a <TestSuite> element, use
TestSuite.fromelem(elem)
Nothing published for this version
the TestCase.result type annotation
TestCase.result type annotationxunit2.JUnitXml.fromroot type annotationMerge branch 'master' of github.com:weiwei/junitparser
Merge branch 'master' of github.com:weiwei/junitparser
py.typed file.pytest### Added - Support for different schemas. - xunit2 flavor support - Type hints
Python 2 is no longer supported. Version 2.x will keep supporting py2 and it will be maintained as long as possible, though no new features will be ad
Python 2 is no longer supported. Version 2.x will keep supporting py2 and it will be maintained as long as possible, though no new features will be added.
--suite-name parameter for merging xmls with cli. Thanks to @yusijs
--suite-name parameter for merging xmls with cli. Thanks to @yusijsfromroot class method to create object from a root element. Thanks to @EnricoMi
fromroot class method to create object from a root element. Thanks to @EnricoMiverify subcommand. Thanks to @teake
verify subcommand. Thanks to @teakeBulk add test cases. Thanks to @Goblenus -
Custom element not properly initiated according to the readme example.
Fix the package build for a specific install method
Nothing published for this version
Parameter typo in the cli. Thanks to @petterssonandreas -
This release addresses issues and PRs by @markgras.
This release addresses issues and PRs by @markgras.
write_xml().setup.py.The time value now has a precision of 3 (#72). Thanks to @bryan-hunt.
Unescaping attribute values (#71).
CLI broken due to a quotation mark.
Should not have used default sys locale to parse numbers. Thanks to @EnricoMi
TestCase.result is now a list instead of a single item. Failure, Skip, etc. are all treated as results.
TestCase.result is now a list instead of a single item. Failure, Skip,
etc. are all treated as results.TestCase constructor supports time and classname as params.Result object supports text attribute.Nothing published for this version
JunitXML.fromstring() now handles various inputs.
JunitXML.fromstring() now handles various inputs.Exclude test file from package. Thanks to @Ishinomori
### Changed - Update licence and readme
Custom parser option for fromfile
fromfile### Fixed - #47 result error when running merge in cli
Runs with python -m junitparser ... Thanks to @jkowalleck
python -m junitparser ... Thanks to @jkowalleckjunitparser merge --glob also by @jkowalleck### Fixed - command line versioning
A conditional statement error. Thanks to @dries007
Retain suite name when merging test suites. Thanks to @alde
Performance improvement for file merging. Thanks to @arichardson
Ensure htmlentities are used in attributes. Thanks to @alde
Nothing published for this version
Merging test files doesn't merge test counts. Thanks to @andydawkins
Nothing published for this version
Nothing published for this version
Support for reading custom attributes and elements. Thanks to @arewm
Python 2 support. Thanks to @SteinHeselmans
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →