Class SqlScriptsTestExecutionListener

All Implemented Interfaces:
Ordered, AotTestExecutionListener, TestExecutionListener

public class SqlScriptsTestExecutionListener extends AbstractTestExecutionListener implements AotTestExecutionListener
TestExecutionListener that provides support for executing SQL scripts and inlined statements configured via the @Sql annotation.

Scripts and inlined statements will be executed before or after execution of the corresponding test method, depending on the configured value of the executionPhase flag.

Scripts and inlined statements will be executed without a transaction, within an existing Spring-managed transaction, or within an isolated transaction, depending on the configured value of SqlConfig.transactionMode() and the presence of a transaction manager.

Script Resources

For details on default script detection and how script resource locations are interpreted, see Sql.scripts().

Required Spring Beans

A PlatformTransactionManager and a DataSource, just a PlatformTransactionManager, or just a DataSource must be defined as beans in the Spring ApplicationContext for the corresponding test. Consult the javadocs for SqlConfig.transactionMode(), SqlConfig.transactionManager(), SqlConfig.dataSource(), TestContextTransactionUtils.retrieveDataSource(org.springframework.test.context.TestContext, java.lang.String), and TestContextTransactionUtils.retrieveTransactionManager(org.springframework.test.context.TestContext, java.lang.String) for details on permissible configuration constellations and on the algorithms used to locate these beans.

Sam Brannen, Dmitry Semukhin
See Also: