【发布时间】:2017-10-28 19:32:30
【问题描述】:
我在 IntelliJ 中创建了新的 spring boot 项目,我想将使用 spring boot 上下文的测试与简单的单元测试分开,所以我添加了 maven failsafe 插件。我的配置如下所示:
<!--RUNNING UNIT TESTS-->
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.20</version>
<configuration>
<excludes>
<exclude>**/*IT.java</exclude>
</excludes>
</configuration>
</plugin>
<!--RUNNING INTEGRATION TESTS-->
<plugin>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.20</version>
<configuration>
<includes>
<include>**/*IT.java</include>
</includes>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
我已经重命名了在 intellij 测试类中自动生成的匹配模式,测试看起来像这样:
@RunWith(SpringRunner.class)
@SpringBootTest
public class ErpegApplicationTestIT {
@Test
public void contextLoads() {
}
}
问题是,当我在 IntelliJ 上运行此测试时,一切正常。但是在我运行mvn verify 之后,我得到了:
[ERROR] initializationError(com.tbawor.ErpegApplicationTestIT) Time elapsed: 0.005 s <<< ERROR!
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @S
pringBootTest(classes=...) with your test
类命名有问题吗?我应该采取不同的方法来分离这些测试吗?
无论如何,感谢您的帮助。
【问题讨论】:
-
首先您的maven-surefire-plugin 和maven-failsafe-plugin 配置是不需要的,因为它们是默认值(约定优于配置)。您是否按照错误消息中的建议进行操作?
标签: java maven intellij-idea spring-boot maven-failsafe-plugin