我有一个春季启动应用程序,我想自动测试。
我已经编写了一个@DataJpaTest
单元测试,就像那个here一样,并且工作正常,但由于必须开始弹簧,它会大大减慢构建过程。
我想使用maven failsafe插件将这些测试作为集成测试运行,但我可以弄清楚如何执行此操作。如果我重命名测试以使它们与*IT.java
匹配,则failsafe会尝试运行它们,但是spring并没有启动,并且注入的存储库出现java.lang.NoClassDefFoundError
错误。
将弹簧启动测试作为集成测试运行的最佳方法是什么?
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>
现在,当我使用mvn verify
运行测试时弹簧框架无法启动,因此我为JpaRepository获取java.lang.NoClassDefFoundError
我试图注入并测试。