Class EventPublishingTestExecutionListener

All Implemented Interfaces:
Ordered, TestExecutionListener

public class EventPublishingTestExecutionListener extends AbstractTestExecutionListener
TestExecutionListener that publishes test execution events to the ApplicationContext for the currently executing test. Events are only published if the ApplicationContext has already been loaded.

Supported Events

These events may be consumed for various reasons, such as resetting mock beans or tracing test execution. One advantage of consuming test events rather than implementing a custom TestExecutionListener is that test events may be consumed by any Spring bean registered in the test ApplicationContext, and such beans may benefit directly from dependency injection and other features of the ApplicationContext. In contrast, a TestExecutionListener is not a bean in the ApplicationContext.

Exception Handling

By default, if a test event listener throws an exception while consuming a test event, that exception will propagate to the underlying testing framework in use. For example, if the consumption of a BeforeTestMethodEvent results in an exception, the corresponding test method will fail as a result of the exception. In contrast, if an asynchronous test event listener throws an exception, the exception will not propagate to the underlying testing framework. For further details on asynchronous exception handling, consult the class-level Javadoc for @EventListener.

Asynchronous Listeners

If you want a particular test event listener to process events asynchronously, you can use Spring's @Async support. For further details, consult the class-level Javadoc for @EventListener.

Sam Brannen, Frank Scheffler
See Also: