Skip to content

Commit 3e3b26a

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 aa864f4 commit 3e3b26a

File tree

2 files changed

+30
-2
lines changed

2 files changed

+30
-2
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: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,16 +157,18 @@ public void startElement(String uri, String localName, String qName, Attributes
157157
break;
158158
case "failure":
159159
currentElement = new StringBuilder();
160-
161160
testCase.setFailure(attributes.getValue("message"), attributes.getValue("type"));
162161
currentSuite.incrementNumberOfFailures();
163162
break;
164163
case "error":
165164
currentElement = new StringBuilder();
166-
167165
testCase.setError(attributes.getValue("message"), attributes.getValue("type"));
168166
currentSuite.incrementNumberOfErrors();
169167
break;
168+
case "system-out":
169+
case "system-err":
170+
currentElement = new StringBuilder();
171+
break;
170172
case "skipped":
171173
String message = attributes.getValue("message");
172174
testCase.setSkipped(message != null ? message : "skipped");
@@ -205,6 +207,12 @@ public void endElement(String uri, String localName, String qName) throws SAXExc
205207
testCase.setFailureDetail(currentElement.toString())
206208
.setFailureErrorLine(parseErrorLine(currentElement, testCase.getFullClassName()));
207209
break;
210+
case "system-out":
211+
testCase.setSystemOut(currentElement.toString());
212+
break;
213+
case "system-err":
214+
testCase.setSystemErr(currentElement.toString());
215+
break;
208216
case "time":
209217
try {
210218
defaultSuite.setTimeElapsed(Float.parseFloat(currentElement.toString()));

0 commit comments

Comments
 (0)