当前位置: 首页 > 知识库问答 >
问题:

在Spring中为测试目的在内存数据库中配置特定配置

范京
2023-03-14

我如何配置我的Spring Boot应用程序,以便当我运行单元测试时,它将使用内存中的数据库(如h2/hsql),而当我运行Spring Boot应用程序时,它将使用生产数据库[postgre/mysql]?

共有1个答案

周辰沛
2023-03-14

Spring型材可用于此。这将是一种特定的方式:

具有特定于环境的属性文件:

应用程序.属性:

spring.profiles.active: dev
spring.jpa.database: MYSQL
spring.jpa.hibernate.ddl-auto: update

spring.datasource.url: jdbc:mysql://localhost:3306/dbname
spring.datasource.username: username
spring.datasource.password: password
spring.jpa.database: HSQL
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <scope>runtime</scope>
</dependency>

<dependency>
    <groupId>org.hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <scope>test</scope>
</dependency>
 类似资料:
  • 我正在尝试用Micronaut编写一个集成测试。 我有一个控制器类:

  • 如何配置Spring Boot应用程序,以便在运行单元测试时使用嵌入式SQL Server,从而可以执行存储过程?

  • 我需要添加测试到我的Spring Boot项目。使用rails框架有开发和测试数据库,它们是在新项目启动时创建的。迁移应用于两个数据库以保持数据库模式相等。不幸的是,我没有找到关于如何在Spring Boot中配置测试环境数据库以及如何使数据库结构等于dev的留档。 在Spring Boot测试的最佳实践是什么?如何为测试环境设置和添加测试数据?有什么例子吗?

  • 在我的上下文中,我希望只自动配置相关配置,省略相关配置。 或者,还有其他更好的方法在Spring-Boot中设置这种类型的测试配置吗?

  • 我用spring boot创建了一个spring网络项目。想了解有关测试的实践。我需要一个内存中的嵌入式数据库,比如hsql或h2,用于具有初始schema.sql的JUnit。在主应用程序上,数据库可以是mysql或oracle 在非spring boot项目中,我们通常会有一个单独的applicationcontext.xml一个由web应用程序引用的应用程序,对于测试,我们会使用applic

  • 我在maven项目中有以下设置。生产性代码的配置类: 然后我有一个测试,它有一个内部: 这门课的测验做得很好。那么我在子包中确实有另一个测试类: 如何避免其他测试中的配置类“泄露”到其他测试中? 我在Spring Boot 1.4.1中看到了使用Spring profiles的集成测试的Spring-boot默认配置文件,而我使用的是Spring Boot 2.0.1。但我相信这是可以做到的。 我