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

## Class TearDownOnVmCrash

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

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

      public class TearDownOnVmCrash
      extends java.lang.Object
      implements JUnitResultFormatter

  Formatter that doesn't create any output but tries to invoke the tearDown method on a testcase if that test was forked and caused a timeout or VM crash.

  This formatter has some limitations, for details see the <junit> task's manual.

  Since:
    Ant 1.8.0

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `TearDownOnVmCrash()` |

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addError​(junit.framework.Test fakeTest, java.lang.Throwable t)` | Only invoke tearDown if the suite is known and not the dummy test we get when a Batch fails and the error is an actual error generated by Ant.
    `void` | `addFailure​(junit.framework.Test test, java.lang.Throwable t)` |
    `void` | `addFailure​(junit.framework.Test test, junit.framework.AssertionFailedError t)` |
    `void` | `endTest​(junit.framework.Test test)` |
    `void` | `endTestSuite​(JUnitTest suite)` | The whole testsuite ended.
    `void` | `setOutput​(java.io.OutputStream out)` | Sets the stream the formatter is supposed to write its results to.
    `void` | `setSystemError​(java.lang.String err)` | 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 test)` |
    `void` | `startTestSuite​(JUnitTest suite)` | Records the suite's name to later determine the class to invoke tearDown on.

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

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

- - ### Constructor Detail

    - #### TearDownOnVmCrash

          public TearDownOnVmCrash()

  - ### Method Detail

    - #### startTestSuite

          public void startTestSuite​(JUnitTest suite)

      Records the suite's name to later determine the class to invoke tearDown on.
      Specified by:
        `startTestSuite` in interface `JUnitResultFormatter`
      Parameters:
        `suite` - the suite.

    - #### addError

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

      Only invoke tearDown if the suite is known and not the dummy test we get when a Batch fails and the error is an actual error generated by Ant.
      Specified by:
        `addError` in interface `junit.framework.TestListener`

    - #### addFailure

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

    - #### addFailure

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

      Specified by:
        `addFailure` in interface `junit.framework.TestListener`

    - #### startTest

          public void startTest​(junit.framework.Test test)

      Specified by:
        `startTest` in interface `junit.framework.TestListener`

    - #### endTest

          public void endTest​(junit.framework.Test test)

      Specified by:
        `endTest` in interface `junit.framework.TestListener`

    - #### endTestSuite

          public void endTestSuite​(JUnitTest suite)

      Description copied from interface: `JUnitResultFormatter`
      The whole testsuite ended.
      Specified by:
        `endTestSuite` in interface `JUnitResultFormatter`
      Parameters:
        `suite` - the suite.

    - #### setOutput

          public void setOutput​(java.io.OutputStream out)

      Description copied from interface: `JUnitResultFormatter`
      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)

      Description copied from interface: `JUnitResultFormatter`
      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 err)

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