将JUnit类与Maven Failsafe插件一起使用
我正在使用JUnit Categories将集成测试与unit testing分开。 Surefire插件配置有效 – 它会跳过使用我的标记接口IntegrationTest注释的测试。
但是,Failsafe插件不会选择集成测试。 我甚至尝试指定junit47提供程序,但是在集成测试阶段运行零测试。
这是pom.xml片段:
org.apache.maven.plugins maven-failsafe-plugin 2.12 integration-test com.mycompany.test.IntegrationTest com.mycompany.test.UnitTest org.apache.maven.surefire surefire-junit47 2.12
这是日志的故障安全部分:
[INFO] --- maven-failsafe-plugin:2.12:integration-test (default) @ MyProject.war --- [INFO] Failsafe report directory: /home/stoupa/MyProject/war/target/failsafe-reports [INFO] Using configured provider org.apache.maven.surefire.junitcore.JUnitCoreProvider ------------------------------------------------------- TESTS ------------------------------------------------------- Concurrency config is parallel='none', perCoreThreadCount=true, threadCount=2, useUnlimitedThreads=false Results : Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
提供者org.apache.maven.surefire.junitcore.JUnitCoreProvider是否可以在日志输出中看到正确的一个?
默认情况下,failsafe插件会排除各种文件。 你必须覆盖它。 因此,请将配置部分更改为以下内容:
**/*.java com.mycompany.test.IntegrationTest com.mycompany.test.UnitTest
替代方法
@Categories会给你带来痛苦,因为你必须标记每个集成测试。
尝试创建如下所述的inttests配置文件,并跳过surefire执行。
inttests false org.apache.maven.plugins maven-surefire-plugin true org.apache.maven.plugins maven-failsafe-plugin **/IT*.java
使用某些字符串对Integration测试进行前缀或后缀,并在包含中给出。 默认情况下,failsafe会将所有以IT为前缀的测试作为集成测试。 参考: 故障安全包含和排除
使用maven profile命令运行它
mvn verify -P inttests
注意:在上面提到的方法中,我们需要在构建期间运行unit testing,然后单独进行inttests。
更新:使用故障安全插件的JUnit4类别
- 从Apache Spark SQL中的用户定义聚合函数(UDAF)返回多个数组
- java调度以伪’固定’速率调用(例如钟形曲线分布)
- 从数据库中检索一百万条记录
- Java 9 HttpClient java.lang.NoClassDefFoundError:jdk / incubator / http / HttpClient
- 使用IntelliJ IDEA运行Maven项目
- 标准表单身份validationJava servlet
- Java:如何将控件拖放到新位置而不是其数据?
- 使用LCDS将不可变java类序列化为actionscript
- 为什么这个BufferedReader没有以指定的UTF-8格式读取?