我有一个想自动测试的 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。