Skip to content

Commit

Permalink
Polish XmlReportWriter
Browse files Browse the repository at this point in the history
Issue: #86
  • Loading branch information
marcphilipp committed Jan 28, 2016
1 parent 1e3c5e4 commit d86c675
Showing 1 changed file with 19 additions and 17 deletions.
Expand Up @@ -79,35 +79,37 @@ private void writeXmlReport(TestIdentifier testIdentifier, List<TestIdentifier>

private void writeTestsuite(TestIdentifier testIdentifier, List<TestIdentifier> tests, XMLStreamWriter writer)
throws XMLStreamException {
writer.writeStartElement("testsuite");

writer.writeAttribute("name", testIdentifier.getDisplayName());

TestCounts testCounts = TestCounts.from(reportData, tests);
writer.writeAttribute("tests", String.valueOf(testCounts.getTotal()));
writer.writeAttribute("skipped", String.valueOf(testCounts.getSkipped()));
writer.writeAttribute("failures", String.valueOf(testCounts.getFailures()));
writer.writeAttribute("errors", String.valueOf(testCounts.getErrors()));

// NumberFormat is not thread-safe. Thus, we instantiate it here and pass it to
// writeTestcase instead of using a constant
NumberFormat numberFormat = NumberFormat.getInstance(Locale.US);
writer.writeAttribute("time", getTime(testIdentifier, numberFormat));

writeHostname(writer);
writeTimestamp(writer);

writer.writeStartElement("testsuite");
writeAttributes(testIdentifier, tests, numberFormat, writer);
writer.writeComment("Unique ID: " + testIdentifier.getUniqueId().toString());

writeSystemProperties(writer);

for (TestIdentifier test : tests) {
writeTestcase(test, numberFormat, writer);
}

writer.writeEndElement();
}

private void writeAttributes(TestIdentifier testIdentifier, List<TestIdentifier> tests, NumberFormat numberFormat,
XMLStreamWriter writer) throws XMLStreamException {
writer.writeAttribute("name", testIdentifier.getDisplayName());
writeTestCounts(tests, writer);
writer.writeAttribute("time", getTime(testIdentifier, numberFormat));
writeHostname(writer);
writeTimestamp(writer);
}

private void writeTestCounts(List<TestIdentifier> tests, XMLStreamWriter writer) throws XMLStreamException {
TestCounts testCounts = TestCounts.from(reportData, tests);
writer.writeAttribute("tests", String.valueOf(testCounts.getTotal()));
writer.writeAttribute("skipped", String.valueOf(testCounts.getSkipped()));
writer.writeAttribute("failures", String.valueOf(testCounts.getFailures()));
writer.writeAttribute("errors", String.valueOf(testCounts.getErrors()));
}

private void writeHostname(XMLStreamWriter writer) throws XMLStreamException {
Optional<String> hostname = getHostname();
if (hostname.isPresent()) {
Expand Down

0 comments on commit d86c675

Please sign in to comment.