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
`TearDownOnVmCrash()`

### Method Summary

All Methods Instance Methods Concrete Methods
`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.