【问题标题】:Spring JPA Test still connects to database on start up or not?Spring JPA Test 在启动时是否仍然连接到数据库?
【发布时间】:2023-03-23 21:31:01
【问题描述】:

请问spring boot jpa test是否还需要先连接数据库再开始测试?

如果不是这样,它只是使用内存嵌入式数据库?

我正在迁移旧版应用程序及其部分测试要求(单元测试),以不连接到它自己的数据库或任何其他服务。

更新:所以我只是尝试关闭 mysql 服务并且它失败了。 所以即使你有 JpaTest 注释,它确实仍然连接到数据库。我们怎样才能避免这种情况?

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

更新:
我只是使用 spring 自动配置来连接到我的存储库 bean。

【问题讨论】:

    标签: unit-testing spring-data-jpa spring-boot-test


    【解决方案1】:

    只要在 Java Config 中或通过 application.properties 配置 MySQL,Spring Boot 就会尝试连接。您能否提供有关如何在您的上下文中配置 MySQL 的其他信息?通常我会在我的 Spring Boot 应用程序中引入一个特定的测试配置文件。另见:Profiles

    【讨论】:

    • 当您说配置文件时 - 它是您模拟数据源或 jdbctemplate 的地方?那么spring autoconfigure可以退出吗?
    • 具体配置文件的介绍。让我说对于连接到 MySQL 的生产或测试以及对于您的 JpaTest 一个集成测试配置文件,而不提供 MySQL JDBC 设置,并让“自动配置”完成它的工作。例如,在 application-prod.properties 中为 MySQL 指定连接属性,并为集成测试配置文件指定一个单独的配置,例如 application-int-test.properties 左右。使用 -Dspring.profiles.active=int-test 开始您的测试,使用 -Dspring.profiles.active=prod 开始您的 Spring Boot 应用程序,您可以使用适当分离的环境。
    猜你喜欢
    • 1970-01-01
    • 2015-02-11
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多