JUnit report viewer
Open JUnit report viewer on Happytails.ai. This view has the same page content and links, with explicit tool capabilities. Read the processing notes before using a tool.
Tool capabilities
{
"id": "junit-report-viewer",
"category": "developer-tools",
"built": true,
"requirements": "Up to 2,000,000 characters and 200,000 test cases per report. Processing runs locally in a background worker in your browser. Downloads: a JSON report and a CSV of test cases.",
"implementation": {
"fields": [
{
"key": "show",
"label": "Show test cases",
"value": "all",
"type": "select",
"values": [
"all",
"problems",
"failures",
"skipped"
],
"labels": {
"all": "All test cases",
"problems": "Failures and errors",
"failures": "Failures only",
"skipped": "Skipped tests"
}
},
{
"key": "sort",
"label": "Order",
"value": "input",
"type": "select",
"values": [
"input",
"slowest",
"status",
"name"
],
"labels": {
"input": "Report order",
"slowest": "Slowest first",
"status": "Test status",
"name": "Test name"
}
},
{
"key": "slowestCount",
"label": "Slowest tests to list",
"value": "10",
"type": "number",
"min": 1,
"max": 1000,
"step": 1
},
{
"key": "includeDetails",
"label": "Include failure details in the JSON report",
"value": false,
"type": "checkbox"
}
],
"registrationFamily": "report-ingest-analysis-reference",
"inputMaxLength": 2000000,
"inputErrorCode": "REPORT_INGEST_ANALYSIS_REFERENCE_TOO_LONG",
"note": "Runs in your browser in a background worker. Reads JUnit and xunit.net v2 XML up to 2,000,000 characters and 200,000 test cases.",
"experience": {
"automatic": false,
"single": false,
"inputMaxLength": 2000000,
"inputMode": "text",
"label": "JUnit or xUnit XML report",
"placeholder": "<testsuites><testsuite name=\"CartTest\">...</testsuite></testsuites>",
"help": "Paste the XML your test runner wrote, for example TEST-*.xml from Surefire or junit.xml from pytest. Up to 2,000,000 characters. Review the settings before running.",
"helpParts": [
"Paste the XML your test runner wrote, for example TEST-*.xml from Surefire or junit.xml from pytest.",
"Up to 2,000,000 characters.",
"Review the settings before running."
],
"action": null
},
"mode": "explicit",
"interactive": false
},
"execution": "Browser interface",
"api": null,
"browser_agent": {
"supported": true,
"name": "run_current_tool",
"discovery": "WebMCP on the human page in a supporting browser",
"verification": "See audit/API-AUDIT.md; availability is not verification"
}
}Page guide
Open a JUnit or xUnit XML test report and see failures, errors, skipped tests and the slowest tests at a glance. Download the totals as JSON and every test case as CSV.
How to use JUnit report viewer
- Paste a JUnit or xUnit XML report, or open the file.
- Choose which test cases to show and how to order them.
- Run the analysis and review totals, suites and the slowest tests.
- Download the JSON report or the CSV of test cases.
Useful next steps
What it reads
The viewer reads JUnit style XML from Maven Surefire, Gradle, pytest, jest-junit and similar runners, including nested testsuite elements and Surefire rerun elements, plus xunit.net v2 XML. Each test case gets one status: error, failed, skipped or passed, in that order of priority.
How totals are counted
Totals are counted from the test cases themselves, not from the tests and failures attributes on the suite, because those attributes are sometimes stale. The pass rate leaves skipped tests out. Times that are not plain decimal seconds are counted as invalid and left out of the total time.
Limits
Reports declaring custom XML entities are rejected. Very large system-out blocks count toward the character limit. The tool does not run tests; it only reads the report you supply.