public class SqlScriptsTestExecutionListener extends AbstractTestExecutionListener
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.
For details on default script detection and how script resource locations
are interpreted, see Sql.scripts()
.
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.
Sql
,
SqlConfig
,
SqlGroup
,
TestContextTransactionUtils
,
TransactionalTestExecutionListener
,
ResourceDatabasePopulator
,
ScriptUtils
HIGHEST_PRECEDENCE, LOWEST_PRECEDENCE
Constructor and Description |
---|
SqlScriptsTestExecutionListener() |
Modifier and Type | Method and Description |
---|---|
void |
afterTestMethod(TestContext testContext)
Execute SQL scripts configured via
@Sql for the supplied
TestContext after the current test method. |
void |
beforeTestMethod(TestContext testContext)
Execute SQL scripts configured via
@Sql for the supplied
TestContext before the current test method. |
int |
getOrder()
Returns
5000 . |
afterTestClass, beforeTestClass, prepareTestInstance
public final int getOrder()
5000
.getOrder
in interface Ordered
getOrder
in class AbstractTestExecutionListener
Ordered.HIGHEST_PRECEDENCE
,
Ordered.LOWEST_PRECEDENCE
public void beforeTestMethod(TestContext testContext) throws Exception
@Sql
for the supplied
TestContext
before the current test method.beforeTestMethod
in interface TestExecutionListener
beforeTestMethod
in class AbstractTestExecutionListener
testContext
- the test context in which the test method will be
executed; never null
Exception
- allows any exception to propagatepublic void afterTestMethod(TestContext testContext) throws Exception
@Sql
for the supplied
TestContext
after the current test method.afterTestMethod
in interface TestExecutionListener
afterTestMethod
in class AbstractTestExecutionListener
testContext
- the test context in which the test method was
executed; never null
Exception
- allows any exception to propagate