【问题标题】:SpringBootTest is connecting to databaseSpringBootTest 正在连接数据库
【发布时间】:2018-11-06 10:23:03
【问题描述】:

我有一个测试正在测试 Spring 应用程序的各个部分。 它使用SpringRunner 和注释@SpringBootTest 所以它正在启动一个完整的spring 服务器。

问题是测试是由一个无权访问数据库的服务器执行的,所以我收到很多连接超时,这会减慢测试速度。

连接问题本身并不是真正的问题,因为测试正在模拟对数据库的调用,因此它们不依赖于存在的连接。只是测试很慢(而且很难看)。

所以测试看起来像这样:

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
public class DispatcherTest

它使用这个属性文件

spring.datasource.url:jdbc:oracle:thin:@100.32.13.32:1521:TEST
spring.datasource.username:sa
spring.datasource.password:password
spring.datasource.driver-class-name:oracle.jdbc.OracleDriver
spring.jpa.database-platform:org.hibernate.dialect.Oracle10gDialect

我认为问题在于有很多不同的 JPA 存储库正在像这样被扫描

@EnableJpaRepositories("package.*")

那么有什么奇特的方法可以告诉 spring 不要连接到数据库,或者我必须模拟每个 JPA 存储库类吗?

【问题讨论】:

标签: java spring testing spring-data-jpa spring-test


【解决方案1】:

您可以使用弹簧配置文件来拆分您的配置。像这样的:

在这种情况下,我有三个配置文件来拆分每个配置。 您可以查看文档 herehere

要使用一些配置文件启动应用程序,只需执行以下操作:

java -Dspring.profiles.active=development -jar yourApplication.jar

在您的情况下,您可以使用配置文件测试来连接嵌入式(例如 H2)或其他本地数据库以测试 impl。

(我的母语不是英语,可能包含语法错误)

【讨论】:

    猜你喜欢
    • 2021-11-27
    • 2020-02-19
    • 1970-01-01
    • 2020-10-10
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    相关资源
    最近更新 更多