in maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/report/DefaultReporterFactory.java [318:363]
boolean printTestFailures(TestResultType type) {
final Map<String, List<TestMethodStats>> testStats;
final Level level;
switch (type) {
case FAILURE:
testStats = failedTests;
level = Level.FAILURE;
break;
case ERROR:
testStats = errorTests;
level = Level.FAILURE;
break;
case FLAKE:
testStats = flakyTests;
level = Level.UNSTABLE;
break;
default:
return false;
}
boolean printed = false;
if (!testStats.isEmpty()) {
log(type.getLogPrefix(), level);
printed = true;
}
for (Map.Entry<String, List<TestMethodStats>> entry : testStats.entrySet()) {
List<TestMethodStats> testMethodStats = entry.getValue();
if (testMethodStats.size() == 1) {
// No rerun, follow the original output format
failure(" " + testMethodStats.get(0).getStackTraceWriter().smartTrimmedStackTrace());
} else {
log(entry.getKey(), level);
for (int i = 0; i < testMethodStats.size(); i++) {
StackTraceWriter failureStackTrace = testMethodStats.get(i).getStackTraceWriter();
if (failureStackTrace == null) {
success(" Run " + (i + 1) + ": PASS");
} else {
failure(" Run " + (i + 1) + ": " + failureStackTrace.smartTrimmedStackTrace());
}
}
log("");
}
}
return printed;
}