in maven-surefire-report-plugin/src/main/java/org/apache/maven/plugins/surefire/report/SurefireReportRenderer.java [174:275]
private void renderSectionPackages() {
Map<String, List<ReportTestSuite>> suitePackages = parser.getSuitesGroupByPackage(testSuites);
if (suitePackages.isEmpty()) {
return;
}
sink.section1();
sinkAnchor("Package_List");
sink.sectionTitle1();
sink.text(getI18nString("surefire", "label.packagelist"));
sink.sectionTitle1_();
constructHotLinks();
sink.lineBreak();
startTable();
tableHeader(new String[] {
getI18nString("surefire", "label.package"),
getI18nString("surefire", "label.tests"),
getI18nString("surefire", "label.errors"),
getI18nString("surefire", "label.failures"),
getI18nString("surefire", "label.skipped"),
getI18nString("surefire", "label.successrate"),
getI18nString("surefire", "label.time")
});
for (Map.Entry<String, List<ReportTestSuite>> entry : suitePackages.entrySet()) {
String packageName = entry.getKey();
List<ReportTestSuite> testSuiteList = entry.getValue();
Map<String, Object> packageSummary = parser.getSummary(testSuiteList);
tableRow(new String[] {
createLinkPatternedText(packageName, '#' + packageName),
String.valueOf(packageSummary.get("totalTests")),
String.valueOf(packageSummary.get("totalErrors")),
String.valueOf(packageSummary.get("totalFailures")),
String.valueOf(packageSummary.get("totalSkipped")),
formatI18nString("surefire", "value.successrate", packageSummary.get("totalPercentage")),
formatI18nString("surefire", "value.time", packageSummary.get("totalElapsedTime"))
});
}
endTable();
sink.lineBreak();
paragraph(getI18nString("surefire", "text.note2"));
for (Map.Entry<String, List<ReportTestSuite>> entry : suitePackages.entrySet()) {
String packageName = entry.getKey();
List<ReportTestSuite> testSuiteList = entry.getValue();
sink.section2();
sinkAnchor(packageName);
sink.sectionTitle2();
sink.text(packageName);
sink.sectionTitle2_();
boolean showTable = false;
for (ReportTestSuite suite : testSuiteList) {
if (showSuccess || suite.getNumberOfErrors() != 0 || suite.getNumberOfFailures() != 0) {
showTable = true;
break;
}
}
if (showTable) {
startTable();
tableHeader(new String[] {
"",
getI18nString("surefire", "label.class"),
getI18nString("surefire", "label.tests"),
getI18nString("surefire", "label.errors"),
getI18nString("surefire", "label.failures"),
getI18nString("surefire", "label.skipped"),
getI18nString("surefire", "label.successrate"),
getI18nString("surefire", "label.time")
});
for (ReportTestSuite suite : testSuiteList) {
if (showSuccess || suite.getNumberOfErrors() != 0 || suite.getNumberOfFailures() != 0) {
renderSectionTestSuite(suite);
}
}
endTable();
}
sink.section2_();
}
sink.lineBreak();
sink.section1_();
}