Skip to content
100% local

JUnit XML report summary

Summarize a JUnit XML test report: pass/fail/skip counts, durations and failure details.

Input
Output

JUnit XML report summary

Paste a JUnit XML test report and this tool turns it into a readable summary: how many tests passed, failed or were skipped, which ones failed and why, and how long each test took. It reads the standard <testsuite>/<testcase> structure produced by JUnit, pytest, Jest (with a JUnit reporter), Go's gotestsum, PHPUnit and most other test runners and CI systems, so you can paste output straight from a build log or a downloaded artifact.

Turn on "Show only failed tests" to cut straight to what needs fixing, or "Sort by duration" to find your slowest tests — useful when a suite has quietly gotten slow and you need to know where the time goes. Group results by test class or by file to see which area of the codebase is failing, and cap long stack traces with "Truncate error messages" so a report full of assertion errors stays scannable. "Limit tests shown" caps how many rows appear, which pairs well with duration sorting for a "top N slowest" list, and "Show success rate" adds a pass percentage.

Paste several reports at once — for example the output of multiple CI jobs or test shards concatenated together — and the tool aggregates every <testcase> it finds and reports how many separate reports were detected. Choose the output that fits what's next: plain text to read, Markdown for a pull request comment, or CSV for a spreadsheet. Windows and Unix line endings are handled the same way.

Everything runs locally in your browser — the XML you paste, which may include internal file paths, class names or stack traces from a private codebase, is never uploaded anywhere. Copy the summary, download it as a .txt file, or send it to another tool's input to keep working with it.

FAQ

Which test frameworks does this support?
Any tool that produces standard JUnit-style XML: JUnit itself, pytest (with --junitxml), Jest with a JUnit reporter, Go, PHPUnit, Mocha with a JUnit reporter and most CI systems that export test results in this format.
What counts as a "failed" test versus an "error"?
JUnit XML distinguishes <failure> (an assertion that did not hold) from <error> (an unexpected exception). Both are counted as failed in the summary, and the detail list shows which type each one was.
Can I combine several test reports into one summary?
Yes. Paste multiple XML reports one after another in the input and the tool aggregates every test case across all of them, and reports how many separate reports it found.
How does "Group by" decide the file for a test?
It uses the <testcase> file attribute when the report includes one, and falls back to the enclosing <testsuite> name otherwise, since most runners record the file there instead.
Is my test report uploaded anywhere?
No. Parsing and summarizing run entirely in your browser — the report, including any file paths or stack traces it contains, never leaves your device.