public class RunListener
extends java.lang.Object
RunNotifier
to be notified
of events that occur during a test run. All of the methods in this class
are abstract and have no implementation; override one or more methods to
receive events.
For example, suppose you have a Cowbell
class that you want to make a noise whenever a test fails. You could write:
public class RingingListener extends RunListener { public void testFailure(Failure failure) { Cowbell.ring(); } }
To invoke your listener, you need to run your tests through JUnitCore
.
public void main(String... args) { JUnitCore core= new JUnitCore(); core.addListener(new RingingListener()); core.run(MyTestClass.class); }
If a listener throws an exception for a test event, the other listeners will
have their testFailure(Failure)
called with a Description
of Description.TEST_MECHANISM
to indicate the failure.
By default, JUnit will synchronize calls to your listener. If your listener
is thread-safe and you want to allow JUnit to call your listener from
multiple threads when tests are run in parallel, you can annotate your
test class with RunListener.ThreadSafe
.
Listener methods will be called from the same thread as is running the test, unless otherwise indicated by the method Javadoc
JUnitCore
Modifier and Type | Class and Description |
---|---|
static interface |
RunListener.ThreadSafe
Indicates a
RunListener that can have its methods called
concurrently. |
Constructor and Description |
---|
RunListener() |
Modifier and Type | Method and Description |
---|---|
void |
testAssumptionFailure(Failure failure)
Called when an atomic test flags that it assumes a condition that is
false
|
void |
testFailure(Failure failure)
Called when an atomic test fails, or when a listener throws an exception.
|
void |
testFinished(Description description)
Called when an atomic test has finished, whether the test succeeds or fails.
|
void |
testIgnored(Description description)
Called when a test will not be run, generally because a test method is annotated
with
Ignore . |
void |
testRunFinished(Result result)
Called when all tests have finished.
|
void |
testRunStarted(Description description)
Called before any tests have been run.
|
void |
testStarted(Description description)
Called when an atomic test is about to be started.
|
void |
testSuiteFinished(Description description)
Called when a test suite has finished, whether the test suite succeeds or fails.
|
void |
testSuiteStarted(Description description)
Called when a test suite is about to be started.
|
public void testRunStarted(Description description) throws java.lang.Exception
description
- describes the tests to be runjava.lang.Exception
public void testRunFinished(Result result) throws java.lang.Exception
result
- the summary of the test run, including all the tests that failedjava.lang.Exception
public void testSuiteStarted(Description description) throws java.lang.Exception
Description
, then testSuiteFinished(Description)
will also be called for the same Description
.
Note that not all runners will call this method, so runners should
be prepared to handle testStarted(Description)
calls for tests
where there was no corresponding testSuiteStarted()
call for
the parent Description
.
description
- the description of the test suite that is about to be run
(generally a class name)java.lang.Exception
public void testSuiteFinished(Description description) throws java.lang.Exception
Description
unless
testSuiteStarted(Description)
was called for the same @code Description}.description
- the description of the test suite that just ranjava.lang.Exception
public void testStarted(Description description) throws java.lang.Exception
description
- the description of the test that is about to be run
(generally a class and method name)java.lang.Exception
public void testFinished(Description description) throws java.lang.Exception
description
- the description of the test that just ranjava.lang.Exception
public void testFailure(Failure failure) throws java.lang.Exception
In the case of a failure of an atomic test, this method will be called
with the same Description
passed to
testStarted(Description)
, from the same thread that called
testStarted(Description)
.
In the case of a listener throwing an exception, this will be called with
a Description
of Description.TEST_MECHANISM
, and may be called
on an arbitrary thread.
failure
- describes the test that failed and the exception that was thrownjava.lang.Exception
public void testAssumptionFailure(Failure failure)
failure
- describes the test that failed and the
AssumptionViolatedException
that was thrownpublic void testIgnored(Description description) throws java.lang.Exception
Ignore
.description
- describes the test that will not be runjava.lang.Exception