org.apache.tools.ant.taskdefs.optional.junit

## Class XMLJUnitResultFormatter

- java.lang.Object
- - org.apache.tools.ant.taskdefs.optional.junit.XMLJUnitResultFormatter

- All Implemented Interfaces:
    junit.framework.TestListener, IgnoredTestListener, JUnitResultFormatter, JUnitTaskMirror.JUnitResultFormatterMirror, XMLConstants

      public class XMLJUnitResultFormatter
      extends java.lang.Object
      implements JUnitResultFormatter, XMLConstants, IgnoredTestListener

  Prints XML output of the test to a specified Writer.
  See Also:
    `FormatterElement`

- - ### Field Summary

    - ### Fields inherited from interface org.apache.tools.ant.taskdefs.optional.junit.XMLConstants

      `ATTR_CLASSNAME, ATTR_ERRORS, ATTR_FAILURES, ATTR_ID, ATTR_MESSAGE, ATTR_NAME, ATTR_PACKAGE, ATTR_SKIPPED, ATTR_TESTS, ATTR_TIME, ATTR_TYPE, ATTR_VALUE, ERROR, FAILURE, HOSTNAME, PROPERTIES, PROPERTY, SYSTEM_ERR, SYSTEM_OUT, TESTCASE, TESTSUITE, TESTSUITES, TIMESTAMP`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `XMLJUnitResultFormatter()` No arg constructor.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `addError(junit.framework.Test test, java.lang.Throwable t)` Interface TestListener.
    `void` | `addFailure(junit.framework.Test test, junit.framework.AssertionFailedError t)` Interface TestListener for JUnit > 3.4.
    `void` | `addFailure(junit.framework.Test test, java.lang.Throwable t)` Interface TestListener for JUnit <= 3.4.
    `void` | `endTest(junit.framework.Test test)` Interface TestListener.
    `void` | `endTestSuite(JUnitTest suite)` The whole testsuite ended.
    `void` | `formatSkip(junit.framework.Test test, java.lang.String message)`
    `void` | `setOutput(java.io.OutputStream out)` Sets the stream the formatter is supposed to write its results to.
    `void` | `setSystemError(java.lang.String out)` This is what the test has written to System.err
    `void` | `setSystemOutput(java.lang.String out)` This is what the test has written to System.out
    `void` | `startTest(junit.framework.Test t)` Interface TestListener.
    `void` | `startTestSuite(JUnitTest suite)` The whole testsuite started.
    `void` | `testAssumptionFailure(junit.framework.Test test, java.lang.Throwable failure)` Receive a report that a test has failed an assumption.
    `void` | `testIgnored(junit.framework.Test test)` Reports when a test has been marked with the @Ignore annotation.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### XMLJUnitResultFormatter

          public XMLJUnitResultFormatter()

      No arg constructor.

  - ### Method Detail

    - #### setOutput

          public void setOutput(java.io.OutputStream out)

      Sets the stream the formatter is supposed to write its results to..
      Specified by:
        `setOutput` in interface `JUnitResultFormatter`
      Specified by:
        `setOutput` in interface `JUnitTaskMirror.JUnitResultFormatterMirror`
      Parameters:
        `out` - the output stream to use.

    - #### setSystemOutput

          public void setSystemOutput(java.lang.String out)

      This is what the test has written to System.out.
      Specified by:
        `setSystemOutput` in interface `JUnitResultFormatter`
      Parameters:
        `out` - the string to write.

    - #### setSystemError

          public void setSystemError(java.lang.String out)

      This is what the test has written to System.err.
      Specified by:
        `setSystemError` in interface `JUnitResultFormatter`
      Parameters:
        `out` - the string to write.

    - #### startTestSuite

          public void startTestSuite(JUnitTest suite)

      The whole testsuite started.
      Specified by:
        `startTestSuite` in interface `JUnitResultFormatter`
      Parameters:
        `suite` - the testsuite.

    - #### endTestSuite

          public void endTestSuite(JUnitTest suite)
                            throws BuildException

      The whole testsuite ended.
      Specified by:
        `endTestSuite` in interface `JUnitResultFormatter`
      Parameters:
        `suite` - the testsuite.
      Throws:
        `BuildException` - on error.

    - #### startTest

          public void startTest(junit.framework.Test t)

      Interface TestListener.

      A new Test is started.

      Specified by:
        `startTest` in interface `junit.framework.TestListener`
      Parameters:
        `t` - the test.

    - #### endTest

          public void endTest(junit.framework.Test test)

      Interface TestListener.

      A Test is finished.

      Specified by:
        `endTest` in interface `junit.framework.TestListener`
      Parameters:
        `test` - the test.

    - #### addFailure

          public void addFailure(junit.framework.Test test,
                                 java.lang.Throwable t)

      Interface TestListener for JUnit <= 3.4.

      A Test failed.

      Parameters:
        `test` - the test.
        `t` - the exception.

    - #### addFailure

          public void addFailure(junit.framework.Test test,
                                 junit.framework.AssertionFailedError t)

      Interface TestListener for JUnit > 3.4.

      A Test failed.

      Specified by:
        `addFailure` in interface `junit.framework.TestListener`
      Parameters:
        `test` - the test.
        `t` - the assertion.

    - #### addError

          public void addError(junit.framework.Test test,
                               java.lang.Throwable t)

      Interface TestListener.

      An error occurred while running the test.

      Specified by:
        `addError` in interface `junit.framework.TestListener`
      Parameters:
        `test` - the test.
        `t` - the error.

    - #### testIgnored

          public void testIgnored(junit.framework.Test test)

      Description copied from interface: `IgnoredTestListener`
      Reports when a test has been marked with the @Ignore annotation. The parameter should normally be typed to JUnit's `JUnit4TestCaseFacade` so implementing classes should be able to get the details of the ignore by casting the argument and retrieving the descriptor from the test.
      Specified by:
        `testIgnored` in interface `IgnoredTestListener`
      Parameters:
        `test` - the details of the test and failure that have triggered this report.

    - #### formatSkip

          public void formatSkip(junit.framework.Test test,
                                 java.lang.String message)

    - #### testAssumptionFailure

          public void testAssumptionFailure(junit.framework.Test test,
                                            java.lang.Throwable failure)

      Description copied from interface: `IgnoredTestListener`
      Receive a report that a test has failed an assumption. Within JUnit4 this is normally treated as a test being skipped, although how any listener handles this is up to that specific listener.

      Note: Tests that throw assumption failures will still report the endTest method, which may differ from how the addError and addFailure methods work, it's up for any implementing classes to handle this.

      Specified by:
        `testAssumptionFailure` in interface `IgnoredTestListener`
      Parameters:
        `test` - the details of the test and failure that have triggered this report.
        `failure` - the AssumptionViolatedException thrown from the current assumption failure.