1

我有一个想自动测试的 Spring Boot 应用程序。

我已经编写了一个类似here@DataJpaTest的单元测试,它运行良好,但是由于必须启动 spring,它大大减慢了构建过程。

我想使用 Maven 故障安全插件将这些测试作为集成测试运行,但我可以弄清楚如何做到这一点。如果我重命名测试以使它们匹配*IT.java,故障安全会尝试运行它们,但是 spring 没有启动,并且我得到java.lang.NoClassDefFoundError注入的存储库的错误。

将 Spring Boot 测试作为集成测试运行的最佳方法是什么?

3 月 18 日更新: 依赖于 spring-boot-starter-test:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
</dependency>

以及以下插件配置:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
<plugin>

集成测试使用正确执行mvn failsafe:integration-test。但是,我希望在我这样做时运行测试mvn install,所以我将插件配置更新为:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-failsafe-plugin</artifactId>
    <executions>
        <execution>
            <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
            </goals>
        </execution>
    </executions>
<plugin>

现在,当我使用 运行测试时,spring 框架没有启动mvn verify,所以我得到java.lang.NoClassDefFoundError了我试图注入和测试的 JpaRepository。

4

0 回答 0