使用 Spring Boot、H2、Gradle 进行测试

问题描述 投票:0回答:1

以下是我的设置概述:

  • 我有一个使用 Gradle 配置的 Spring Boot 应用程序。
  • 我使用嵌入式 H2 数据库进行测试,而在另一个环境中我使用 PostgreSQL。
  • 我的测试类 ClientRepositoryTest 使用 @DataJpaTest 进行注释,并包含位于 src/test/resources 的 SQL 脚本 data.sql。

测试类->

@DataJpaTest
@Sql("classpath:data.sql")
class ClientRepositoryTest {
....

data.sql(src/测试/资源)

insert into public.product (id_product,name) VALUES
(79104,'LOAD'),
(79204,'TRANSPORT');

当我运行测试表单 IntellJ 或从 gradle 命令(gradle clean build)时,我收到下一个错误,当我的类 Product 是

public class Product {

    @Id
    @Column(name = "id_product")
    private Integer idProduct;

    @Column(unique = true, nullable = false)
    private String name;

唯一索引或主键违规:“PRIMARY KEY ON PUBLIC.PRODUCT(ID_PRODUCT) ( / key:79104 / 79104, 'LOAD ...

我不明白,因为没有数据。

谢谢您的帮助。

spring-boot spring-data-jpa spring-test
1个回答
0
投票

您需要活动的测试配置文件,其中数据源指向嵌入数据库

© www.soinside.com 2019 - 2024. All rights reserved.