Skip to content

Commit b357d55

Browse files
committed
[SUREFIRE-2219] Add test stdErr/stdOut output to ReportTestCase
TestSuiteXmlParser no longer ignores the 'system-out' and 'system-err' tags from the Surefire report XML. It parses them and sets the corresponding properties in ReportTestCase.
1 parent 05322d9 commit b357d55

File tree

2 files changed

+31
-0
lines changed

2 files changed

+31
-0
lines changed

surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/ReportTestCase.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ public final class ReportTestCase {
4141
private String failureErrorLine;
4242

4343
private String failureDetail;
44+
private String systemOut;
45+
private String systemErr;
4446

4547
private boolean hasFailure;
4648

@@ -138,6 +140,24 @@ public ReportTestCase setError(String message, String type) {
138140
return setFailureMessage(message).setFailureType(type);
139141
}
140142

143+
public String getSystemOut() {
144+
return systemOut;
145+
}
146+
147+
public ReportTestCase setSystemOut(String message) {
148+
systemOut = message;
149+
return this;
150+
}
151+
152+
public String getSystemErr() {
153+
return systemErr;
154+
}
155+
156+
public ReportTestCase setSystemErr(String message) {
157+
systemErr = message;
158+
return this;
159+
}
160+
141161
public ReportTestCase setSkipped(String message) {
142162
hasFailure = false;
143163
hasError = false;

surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,11 @@ public void startElement(String uri, String localName, String qName, Attributes
171171
testCase.setError(attributes.getValue("message"), attributes.getValue("type"));
172172
currentSuite.incrementNumberOfErrors();
173173
break;
174+
case "system-out":
175+
case "system-err":
176+
currentElement = new StringBuilder();
177+
parseContent = true;
178+
break;
174179
case "skipped":
175180
String message = attributes.getValue("message");
176181
testCase.setSkipped(message != null ? message : "skipped");
@@ -210,6 +215,12 @@ public void endElement(String uri, String localName, String qName) throws SAXExc
210215
testCase.setFailureDetail(currentElement.toString())
211216
.setFailureErrorLine(parseErrorLine(currentElement, testCase.getFullClassName()));
212217
break;
218+
case "system-out":
219+
testCase.setSystemOut(currentElement.toString());
220+
break;
221+
case "system-err":
222+
testCase.setSystemErr(currentElement.toString());
223+
break;
213224
case "time":
214225
try {
215226
defaultSuite.setTimeElapsed(Float.parseFloat(currentElement.toString()));

0 commit comments

Comments
 (0)