Spring boot 如何更改数据库测试
我使用SpringBoot2.0,数据库部分使用PostgresSpring boot 如何更改数据库测试,spring-boot,Spring Boot,我使用SpringBoot2.0,数据库部分使用Postgres 有没有一种方法可以使用postgres数据库代替内存数据库或h2或hsqldb进行测试?将PostgreSQL依赖关系放到类路径中(Mavenpom.xml示例): 在本例中,JDBCURL使用dbname数据库名称、dbuser用户名和dbpasswd密码 在运行测试时使用PosrgreSQL 您还没有直接指定它,但您可能对使用PostgreSQL数据库运行集成测试感兴趣。如果是这样,你必须做一件事。创建一个名为applicat
有没有一种方法可以使用postgres数据库代替内存数据库或h2或hsqldb进行测试?将PostgreSQL依赖关系放到类路径中(Maven
pom.xml
示例):
在本例中,JDBCURL使用dbname
数据库名称、dbuser
用户名和dbpasswd
密码
在运行测试时使用PosrgreSQL
您还没有直接指定它,但您可能对使用PostgreSQL数据库运行集成测试感兴趣。如果是这样,你必须做一件事。创建一个名为application it.yml
(it
代表“集成测试”)的新配置文件,并将上面提到的内容放在那里。您还可以将依赖项定义更改为:
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>test</scope>
</dependency>
因此spring将选择应用程序it.yml
配置文件来建立数据库连接
参考:
好处:使用嵌入式PostgreSQL
您可能对使用嵌入式PostgreSQL运行集成测试感兴趣。您可以使用此库:
在这里,您可以找到一个如何将其与Spring Boot一起用于测试的示例:
使用嵌入式PostgreSQL有一个显著的优势——您不必手动设置数据库。您可以在本地开发中以及与持续集成服务器一起使用它。希望有帮助。可能在junit测试中编写 @DataJpaTest @AutoConfigureTestDatabase(replace=replace.NONE) 这将使用配置文件的默认数据库
spring:
datasource:
url: jdbc:postgresql://localhost:5432/dbname?user=dbuser&password=dbpasswd
driverClassName: org.postgresql.Driver
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
<scope>test</scope>
</dependency>
@ActiveProfiles("it")