在我的测试中,我需要使用不同的数据库(mysql、oracle等)进行测试。我想知道是否有可能使用SpringRunner。
我使用@SqlGroup和@Sql注释,但我没有发现如何指示相应的脚本文件(sql)数据库。
示例:
@Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = "classpath:tenantBeforeTestRun.sql")此注释将我的测试配置为将脚本执行为所有数据库类型,但该文件在Oracle上不起作用。
发布于 2018-05-08 19:39:54
@Sql注释允许您定义一个包含datasource bean名称的datasource。然后,您可以使用可能不同的驱动程序定义许多数据源bean,并从不同的@Sql中引用它们。这可能会有帮助:Spring Boot Multiple Datasource
@Sql(..., config = @SqlConfig(datasource = "db1", ...)application.properties:
#first db
spring.db1.url = [url]
spring.db1.username = [username]
spring.db1.password = [password]
spring.db1.driverClassName = oracle.jdbc.OracleDriver
#second db ...
spring.secondDatasource.url = [url]
spring.secondDatasource.username = [username]
spring.secondDatasource.password = [password]
spring.secondDatasource.driverClassName = oracle.jdbc.OracleDriver然后,在@Configuration类的某个地方:
@Bean(name = "db1")
@ConfigurationProperties(prefix="spring.db1")
public DataSource secondaryDataSource() {
return DataSourceBuilder.create().build();
}https://stackoverflow.com/questions/50240531
复制相似问题