public class StatelessXmlReporter
extends java.lang.Object
TEST-reportName[-suffix].xml
file like written and read
by Ant's <junit>
and
<junitreport>
tasks,
then supported by many tools like CI servers.
<?xml version="1.0" encoding="UTF-8"?> <testsuite name="suite name" [group="group"] tests="0" failures="0" errors="0" skipped="0" time="0,###.###"> <properties> <property name="name" value="value"/> [...] </properties> <testcase time="0,###.###" name="test name [classname="class name"] [group="group"]"/> <testcase time="0,###.###" name="test name [classname="class name"] [group="group"]"> <error message="message" type="exception class name">stacktrace</error> <system-out>system out content (present only if not empty)</system-out> <system-err>system err content (present only if not empty)</system-err> </testcase> <testcase time="0,###.###" name="test name [classname="class name"] [group="group"]"> <failure message="message" type="exception class name">stacktrace</failure> <system-out>system out content (present only if not empty)</system-out> <system-err>system err content (present only if not empty)</system-err> </testcase> <testcase time="0,###.###" name="test name [classname="class name"] [group="group"]"> <skipped/> </testcase> [...]
Modifier and Type | Class and Description |
---|---|
private static class |
StatelessXmlReporter.ByteConstantsHolder |
private static class |
StatelessXmlReporter.EncodingOutputStream |
Modifier and Type | Field and Description |
---|---|
private static java.lang.String |
ENCODING |
private static java.nio.charset.Charset |
ENCODING_CS |
private java.lang.String |
reportNameSuffix |
private java.io.File |
reportsDirectory |
private int |
rerunFailingTestsCount |
private java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.util.List<WrappedReportEntry>>> |
testClassMethodRunHistoryMap |
private boolean |
trimStackTrace |
Constructor and Description |
---|
StatelessXmlReporter(java.io.File reportsDirectory,
java.lang.String reportNameSuffix,
boolean trimStackTrace,
int rerunFailingTestsCount,
java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.util.List<WrappedReportEntry>>> testClassMethodRunHistoryMap) |
Modifier and Type | Method and Description |
---|---|
private static void |
addOutputStreamElement(java.io.OutputStreamWriter outputStreamWriter,
StatelessXmlReporter.EncodingOutputStream eos,
org.apache.maven.shared.utils.xml.XMLWriter xmlWriter,
Utf8RecodingDeferredFileOutputStream utf8RecodingDeferredFileOutputStream,
java.lang.String name) |
void |
cleanTestHistoryMap()
Clean testClassMethodRunHistoryMap
|
private static boolean |
containsEscapesIllegalnXml10(java.lang.String message) |
private static void |
createOutErrElements(java.io.OutputStreamWriter outputStreamWriter,
org.apache.maven.shared.utils.xml.XMLWriter ppw,
WrappedReportEntry report,
java.io.FileOutputStream fw) |
private static void |
createTestSuiteElement(org.apache.maven.shared.utils.xml.XMLWriter ppw,
WrappedReportEntry report,
TestSetStats testSetStats,
java.lang.String reportNameSuffix1,
java.lang.String timeAsString) |
private static java.lang.String |
escapeXml(java.lang.String text,
boolean attribute) |
private static java.lang.String |
extraEscape(java.lang.String message,
boolean attribute)
Handle stuff that may pop up in java that is not legal in xml
|
private static void |
getAddMethodEntryList(java.util.Map<java.lang.String,java.util.List<WrappedReportEntry>> methodRunHistoryMap,
WrappedReportEntry methodEntry) |
private java.util.Map<java.lang.String,java.util.List<WrappedReportEntry>> |
getAddMethodRunHistoryMap(java.lang.String testClassName) |
private java.io.FileOutputStream |
getOutputStream(WrappedReportEntry testSetReportEntry) |
private static java.io.File |
getReportFile(ReportEntry report,
java.io.File reportsDirectory,
java.lang.String reportNameSuffix) |
private static void |
getTestProblems(java.io.OutputStreamWriter outputStreamWriter,
org.apache.maven.shared.utils.xml.XMLWriter ppw,
WrappedReportEntry report,
boolean trimStackTrace,
java.io.FileOutputStream fw,
java.lang.String testErrorType,
boolean createOutErrElementsInside) |
private DefaultReporterFactory.TestResultType |
getTestResultType(java.util.List<WrappedReportEntry> methodEntryList)
Get the result of a test from a list of its runs in WrappedReportEntry
|
private static java.io.OutputStreamWriter |
getWriter(java.io.FileOutputStream fos) |
private static boolean |
isIllegalEscape(char c) |
private static boolean |
isIllegalEscape(int c) |
private static void |
showProperties(org.apache.maven.shared.utils.xml.XMLWriter xmlWriter)
Adds system properties to the XML report.
|
private static void |
startTestElement(org.apache.maven.shared.utils.xml.XMLWriter ppw,
WrappedReportEntry report,
java.lang.String reportNameSuffix,
java.lang.String timeAsString) |
void |
testSetCompleted(WrappedReportEntry testSetReportEntry,
TestSetStats testSetStats) |
private static final java.lang.String ENCODING
private static final java.nio.charset.Charset ENCODING_CS
private final java.io.File reportsDirectory
private final java.lang.String reportNameSuffix
private final boolean trimStackTrace
private final int rerunFailingTestsCount
private final java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.util.List<WrappedReportEntry>>> testClassMethodRunHistoryMap
public StatelessXmlReporter(java.io.File reportsDirectory, java.lang.String reportNameSuffix, boolean trimStackTrace, int rerunFailingTestsCount, java.util.Map<java.lang.String,java.util.Map<java.lang.String,java.util.List<WrappedReportEntry>>> testClassMethodRunHistoryMap)
public void testSetCompleted(WrappedReportEntry testSetReportEntry, TestSetStats testSetStats)
public void cleanTestHistoryMap()
private DefaultReporterFactory.TestResultType getTestResultType(java.util.List<WrappedReportEntry> methodEntryList)
methodEntryList
- the list of runs for a given testprivate java.util.Map<java.lang.String,java.util.List<WrappedReportEntry>> getAddMethodRunHistoryMap(java.lang.String testClassName)
private java.io.FileOutputStream getOutputStream(WrappedReportEntry testSetReportEntry)
private static java.io.OutputStreamWriter getWriter(java.io.FileOutputStream fos)
private static void getAddMethodEntryList(java.util.Map<java.lang.String,java.util.List<WrappedReportEntry>> methodRunHistoryMap, WrappedReportEntry methodEntry)
private static java.io.File getReportFile(ReportEntry report, java.io.File reportsDirectory, java.lang.String reportNameSuffix)
private static void startTestElement(org.apache.maven.shared.utils.xml.XMLWriter ppw, WrappedReportEntry report, java.lang.String reportNameSuffix, java.lang.String timeAsString)
private static void createTestSuiteElement(org.apache.maven.shared.utils.xml.XMLWriter ppw, WrappedReportEntry report, TestSetStats testSetStats, java.lang.String reportNameSuffix1, java.lang.String timeAsString)
private static void getTestProblems(java.io.OutputStreamWriter outputStreamWriter, org.apache.maven.shared.utils.xml.XMLWriter ppw, WrappedReportEntry report, boolean trimStackTrace, java.io.FileOutputStream fw, java.lang.String testErrorType, boolean createOutErrElementsInside)
private static void createOutErrElements(java.io.OutputStreamWriter outputStreamWriter, org.apache.maven.shared.utils.xml.XMLWriter ppw, WrappedReportEntry report, java.io.FileOutputStream fw)
private static void addOutputStreamElement(java.io.OutputStreamWriter outputStreamWriter, StatelessXmlReporter.EncodingOutputStream eos, org.apache.maven.shared.utils.xml.XMLWriter xmlWriter, Utf8RecodingDeferredFileOutputStream utf8RecodingDeferredFileOutputStream, java.lang.String name)
private static void showProperties(org.apache.maven.shared.utils.xml.XMLWriter xmlWriter)
xmlWriter
- The test suite to report toprivate static java.lang.String extraEscape(java.lang.String message, boolean attribute)
message
- The stringattribute
- true if the escaped value is inside an attributeprivate static boolean containsEscapesIllegalnXml10(java.lang.String message)
private static boolean isIllegalEscape(char c)
private static boolean isIllegalEscape(int c)
private static java.lang.String escapeXml(java.lang.String text, boolean attribute)