Annotation Interface TestExecutionListeners
TestExecutionListeners
defines class-level metadata for configuring
which TestExecutionListeners
should be
registered with a TestContextManager
.
@TestExecutionListeners
is used to register listeners for a
particular test class, its subclasses, and its nested classes. If you wish to
register a listener globally, you should register it via the automatic discovery
mechanism described in TestExecutionListener
.
This annotation may be used as a meta-annotation to create custom
composed annotations. As of Spring Framework 5.3, this annotation will
be inherited from an enclosing test class by default. See
@NestedTestConfiguration
for details.
Switching to default TestExecutionListener
implementations
If you extend a class that is annotated with @TestExecutionListeners
and you need to switch to using the default set of listeners, you
can annotate your class with the following.
// Switch to default listeners @TestExecutionListeners(listeners = {}, inheritListeners = false, mergeMode = MERGE_WITH_DEFAULTS) class MyTests extends BaseTests { // ... }
- Since:
- 2.5
- Author:
- Sam Brannen
- See Also:
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic enum
Enumeration of modes that dictate whether explicitly declared listeners are merged with the default listeners when@TestExecutionListeners
is declared on a class that does not inherit listeners from a superclass or enclosing class. -
Optional Element Summary
Modifier and TypeOptional ElementDescriptionboolean
WhetherTestExecutionListeners
from superclasses and enclosing classes should be inherited.Class<? extends TestExecutionListener>[]
TheTestExecutionListeners
to register with theTestContextManager
.The merge mode to use when@TestExecutionListeners
is declared on a class that does not inherit listeners from a superclass or enclosing class.Class<? extends TestExecutionListener>[]
Alias forlisteners()
.
-
Element Details
-
value
Alias forlisteners()
.This attribute may not be used in conjunction with
listeners()
, but it may be used instead oflisteners()
.- Default:
- {}
-
listeners
TheTestExecutionListeners
to register with theTestContextManager
.This attribute may not be used in conjunction with
value()
, but it may be used instead ofvalue()
.- See Also:
- Default:
- {}
-
inheritListeners
boolean inheritListenersWhetherTestExecutionListeners
from superclasses and enclosing classes should be inherited.The default value is
true
, which means that an annotated class will inherit the listeners defined by an annotated superclass or enclosing class. Specifically, the listeners for an annotated class will be appended to the list of listeners defined by an annotated superclass or enclosing class. Thus, subclasses and nested classes have the option of extending the list of listeners. In the following example,AbstractBaseTest
will be configured withDependencyInjectionTestExecutionListener
andDirtiesContextTestExecutionListener
; whereas,TransactionalTest
will be configured withDependencyInjectionTestExecutionListener
,DirtiesContextTestExecutionListener
, andTransactionalTestExecutionListener
, in that order.@TestExecutionListeners({ DependencyInjectionTestExecutionListener.class, DirtiesContextTestExecutionListener.class }) public abstract class AbstractBaseTest { // ... } @TestExecutionListeners(TransactionalTestExecutionListener.class) public class TransactionalTest extends AbstractBaseTest { // ... }
If
inheritListeners
is set tofalse
, the listeners for the annotated class will shadow and effectively replace any listeners defined by a superclass or enclosing class.- Default:
- true
-
mergeMode
TestExecutionListeners.MergeMode mergeModeThe merge mode to use when@TestExecutionListeners
is declared on a class that does not inherit listeners from a superclass or enclosing class.Can be set to
MERGE_WITH_DEFAULTS
to have locally declared listeners merged with the default listeners.The mode is ignored if listeners are inherited from a superclass or enclosing class.
Defaults to
REPLACE_DEFAULTS
for backwards compatibility.- Since:
- 4.1
- See Also:
- Default:
- REPLACE_DEFAULTS
-