Skip to content

Early Adopter Offer:Get 40% off Core & Scale for your first year with code EARLYQFView pricing

Test Observability

JUnit XML

Also known as: JUnit report format, JUnit-style XML

JUnit XML is the de facto standard file format for test results in CI — an XML document of testsuite and testcase elements that, despite universal support, has no official specification.

The format originated as output from Apache Ant’s JUnit task and spread by imitation rather than by standardisation. Because no specification was ever published, every framework emits a slightly different dialect: writers disagree on the root element, on whether suites may nest, on attribute names, on timestamp layout, and on how durations are reported. Consumers survive by parsing tolerantly and deriving counts from the cases rather than trusting the header attributes.

Its limits matter as much as its reach. JUnit XML describes a single execution and has no vocabulary for retries, flakiness, attachments, or step-level detail — tools that need those improvise with the properties extension point. That is why flaky-test detection cannot be done from one JUnit XML file and has to be derived from a test’s history across many runs.

  • No official specification; at least three competing XSDs circulate (Maven Surefire, Jenkins, Ant).
  • Universally readable — nearly every CI system ingests it without a plugin.
  • Cannot express retries, flakiness, attachments, or steps.

See it in your own test results

Qualflare detects flaky tests, clusters failures by root cause, and scores release risk from the test results you already produce in CI. Start free.

Start free with Qualflare

← Back to the testing & observability glossary.

Last reviewed September 9, 2026