@API(status=STABLE, since="1.0") public interface EngineExecutionListener
Contrary to JUnit 4, test engines must report events not only for test descriptors that represent executable leaves but also for all intermediate containers.
TestEngine
,
ExecutionRequest
Modifier and Type | Method and Description |
---|---|
void |
dynamicTestRegistered(TestDescriptor testDescriptor)
Must be called when a new, dynamic
TestDescriptor has been
registered. |
void |
executionFinished(TestDescriptor testDescriptor,
TestExecutionResult testExecutionResult)
Must be called when the execution of a leaf or subtree of the test tree
has finished, regardless of the outcome.
|
void |
executionSkipped(TestDescriptor testDescriptor,
String reason)
Must be called when the execution of a leaf or subtree of the test tree
has been skipped.
|
void |
executionStarted(TestDescriptor testDescriptor)
Must be called when the execution of a leaf or subtree of the test tree
is about to be started.
|
void |
reportingEntryPublished(TestDescriptor testDescriptor,
ReportEntry entry)
Can be called for any
testDescriptor in order to publish additional information, e.g.:
Output that would otherwise go to System.out
Information about test context or test data
|
void dynamicTestRegistered(TestDescriptor testDescriptor)
TestDescriptor
has been
registered.
A dynamic test is a test that is not known a-priori and therefore was not present in the test tree when discovering tests.
testDescriptor
- the descriptor of the newly registered test
or containervoid executionSkipped(TestDescriptor testDescriptor, String reason)
The TestDescriptor
may represent a test or a container. In the
case of a container, engines must not fire any additional events for its
descendants.
A skipped test or subtree of tests must not be reported as started or finished.
testDescriptor
- the descriptor of the skipped test or containerreason
- a human-readable message describing why the execution
has been skippedvoid executionStarted(TestDescriptor testDescriptor)
The TestDescriptor
may represent a test or a container. In the
case of a container, engines have to fire additional events for its
children.
This method may only be called if the test or container has not been skipped.
This method must be called for a container TestDescriptor
before starting or
skipping any of its children.
testDescriptor
- the descriptor of the started test or containervoid executionFinished(TestDescriptor testDescriptor, TestExecutionResult testExecutionResult)
The TestDescriptor
may represent a test or a container.
This method may only be called if the test or container has not been skipped.
This method must be called for a container TestIdentifier
after all of its children have been
skipped or have
finished.
The TestExecutionResult
describes the result of the execution
for the supplied testDescriptor
. The result does not include or
aggregate the results of its children. For example, a container with a
failing test must be reported as SUCCESSFUL
even
if one or more of its children are reported as FAILED
.
testDescriptor
- the descriptor of the finished test or containertestExecutionResult
- the (unaggregated) result of the execution for
the supplied TestDescriptor
TestExecutionResult
void reportingEntryPublished(TestDescriptor testDescriptor, ReportEntry entry)
testDescriptor
in order to publish additional information, e.g.:
System.out
The current lifecycle state of testDescriptor
is not relevant;
that means that reporting events can occur at all times.
testDescriptor
- the descriptor of the test or container to which the entry belongsentry
- a ReportEntry
instance to be published