使用多个数据源获取url的Spring启动集成测试不能为null

时间:2017-11-22 09:20:27

标签: spring-boot

目前,我正在开发spring boot应用程序,我们将mysql作为主数据库的一部分连接到H2 Db(在内存中)作为集成测试的一部分。现在我们需要再添加两个数据库,我通过在application.properties中提供多个数据源来连接多个数据源

spring.mys.datasource.url=jdbc:mysql://17.27.24.33:3306/my-db
spring.mys.datasource.username=root
spring.mys.datasource.password=1234
spring.mys.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.teradata.datasource.url=jdbc:mysql://17.27.24.33:3306/mydb
spring.teradata.datasource.username=root
spring.teradata.datasource.password=password
spring.teradata.datasource.driver-class-name=com.mysql.jdbc.Driver

当我们拥有单一数据源时,我可以连接到内存数据库中的HSQL,作为测试application.properties的一部分,带有配置文件测试

spring.jpa.database: HSQL          
spring.jpa.hibernate.ddl-auto=create-drop          
spring.profiles.active=test  

添加第二个数据源后,我的集成测试失败,出现以下错误。基本上,我们需要为两个数据源实现集成测试。感谢任何帮助,谢谢。

集成测试中的代码

    @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
    @ContextConfiguration(classes = { ServiceConfig.class, JWTProtectedWebSecurity.class })
    public abstract class BaseIRTest  {
    }

运行maven测试时请参阅以下错误

2017-11-22 12:31:04.479 ERROR 14648 --- [           main] o.a.tomcat.jdbc.pool.ConnectionPool      : Unable to create initial connections of pool.

java.sql.SQLException: The url cannot be null
    at java.sql.DriverManager.getConnection(DriverManager.java:649) ~[na:1.8.0_60]
    at java.sql.DriverManager.getConnection(DriverManager.java:208) ~[na:1.8.0_60]
    at org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver(PooledConnection.java:308) ~[tomcat-jdbc-8.5.11.jar:na]
    at org.apache.tomcat.jdbc.pool.PooledConnection.connect(PooledConnection.java:203) ~[tomcat-jdbc-8.5.11.jar:na]
    at org.apache.tomcat.jdbc.pool.ConnectionPool.createConnection(ConnectionPool.java:732) [tomcat-jdbc-8.5.11.jar:na]
    at 

0 个答案:

没有答案