首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用多种数据库类型的Spring集成测试

问使用多种数据库类型的Spring集成测试
EN

Stack Overflow用户
提问于 2018-05-08 18:55:37
回答 1查看 2.3K关注 0票数 1

在我的测试中,我需要使用不同的数据库(mysql、oracle等)进行测试。我想知道是否有可能使用SpringRunner。

我使用@SqlGroup和@Sql注释,但我没有发现如何指示相应的脚本文件(sql)数据库。

示例:

代码语言:javascript
复制
@Sql(executionPhase = Sql.ExecutionPhase.BEFORE_TEST_METHOD, scripts = "classpath:tenantBeforeTestRun.sql")

此注释将我的测试配置为将脚本执行为所有数据库类型,但该文件在Oracle上不起作用。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-08 19:39:54

@Sql注释允许您定义一个包含datasource bean名称的datasource。然后,您可以使用可能不同的驱动程序定义许多数据源bean,并从不同的@Sql中引用它们。这可能会有帮助:Spring Boot Multiple Datasource

代码语言:javascript
复制
@Sql(..., config = @SqlConfig(datasource = "db1", ...)

application.properties:

代码语言:javascript
复制
#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类的某个地方:

代码语言:javascript
复制
@Bean(name = "db1")
@ConfigurationProperties(prefix="spring.db1")
public DataSource secondaryDataSource() {
    return DataSourceBuilder.create().build();
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50240531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档