From c49b2b728f8146b6dbfce848813b7ce809d94c7c Mon Sep 17 00:00:00 2001 From: Michael Osipov Date: Mon, 22 May 2023 19:06:39 +0200 Subject: [PATCH] [SUREFIRE-2165] TestSuiteXmlParser does not capture text per element causing concatenated text produced This closes #642 --- .../plugins/surefire/report/TestSuiteXmlParser.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java b/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java index 83ccc0619d..3cc15a6703 100644 --- a/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java +++ b/surefire-report-parser/src/main/java/org/apache/maven/plugins/surefire/report/TestSuiteXmlParser.java @@ -131,6 +131,8 @@ public void startElement(String uri, String localName, String qName, Attributes classesToSuitesIndex.put(defaultSuite.getFullClassName(), suites.size() - 1); break; case "testcase": + // Although this element does not contain any text, this line must be retained because the + // nested elements do have text content. currentElement = new StringBuilder(); testCase = new ReportTestCase().setName(attributes.getValue("name")); @@ -162,10 +164,14 @@ public void startElement(String uri, String localName, String qName, Attributes } break; case "failure": + currentElement = new StringBuilder(); + testCase.setFailure(attributes.getValue("message"), attributes.getValue("type")); currentSuite.incrementNumberOfFailures(); break; case "error": + currentElement = new StringBuilder(); + testCase.setError(attributes.getValue("message"), attributes.getValue("type")); currentSuite.incrementNumberOfErrors(); break; @@ -181,6 +187,9 @@ public void startElement(String uri, String localName, String qName, Attributes case "failsafe-summary": valid = false; break; + case "time": + currentElement = new StringBuilder(); + break; default: break; }