JUnit XML Viewer
Open one or more JUnit XML reports and see totals, failures with trimmed stack traces, and the slowest tests and suites. Add several CI runs of the same suite to list tests that both passed and failed, with their run-by-run sequence, apart from tests that fail every time. Reads Surefire and Gradle flakyFailure and rerunFailure elements. Everything is parsed locally with deterministic rules; nothing is uploaded.
JUnit XML Viewer
Client-Side Only
Drop JUnit XML reports
Surefire and Failsafe, Gradle, the JUnit Console Launcher, pytest --junitxml, Playwright, Jest, and Vitest reports all work. Add each CI run to compare them.
Files that share no test IDs join one run (Surefire and Gradle write one file per class). A file that repeats test IDs starts a new run.
Parsed in this browser tab. Reports are read with the browser's own XML parser and compared by fixed rules. Nothing is uploaded and no LLM reads your test output.
Frequently Asked Questions(click to expand)
Is there one JUnit XML standard?
No. The format was popularised by Ant's JUnit task. Maven Surefire publishes its own XSD, which adds flakyFailure, rerunFailure and a flakes count. pytest wraps one testsuite in a testsuites root; Surefire and Gradle write one bare testsuite file per class. The viewer accepts either root and nested suites, and treats every attribute as optional.
Why does a single report hide flaky tests?
With retries on, most tools record the final result. Playwright's JUnit reporter writes a test that passed on retry as an ordinary pass. Surefire and Gradle (with mergeReruns) keep the failed attempts in flakyFailure elements that many CI servers ignore. The viewer reads those elements, and comparing runs catches the rest.
How are the same tests matched across runs?
By classname plus name, falling back to the suite path when there is no classname. A test name that carries a timestamp or random value becomes a different test every run and cannot be matched.
What should I do with a flaky candidate?
Read its failure message first. The Test Failure Triage tool classifies common timeout and locator errors, and the guides on gating CI on flaky Playwright tests and debugging JUnit parallel-execution flakes cover the next steps.