如何使 maven cobertura 和 surefire 插件一起工作?
Posted
技术标签:
【中文标题】如何使 maven cobertura 和 surefire 插件一起工作?【英文标题】:How to make maven cobertura and surefire plugins work together? 【发布时间】:2012-03-08 11:27:01 【问题描述】:我将surefire 和cobertura 插件放在我的pom.xml
中,但我无法将它们配置为正常工作。或者 cobertura 没有运行或者测试执行了两次。
那么,我该如何配置插件,让它们一起运行一次?
如果我这样配置,cobertura 不会运行:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
</plugin>
如果我这样配置,测试会执行两次:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.1</version>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>cobertura</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.12</version>
</plugin>
【问题讨论】:
你在运行什么 maven 目标? 另一种方法是使用声纳。无需更改 POM 文件即可运行这两个工具(插件由属性驱动,您可以在设置文件中设置。) 我在主题中添加了我的 pom.xml 的一部分 你可以看看这个:***.com/questions/732995/… 【参考方案1】:测试将运行两次 - 就是这样。见塞缪尔的评论running junits and cobertura with maven
【讨论】:
【参考方案2】:这就是我如何让它在 cobertura 开启和surefire 关闭的情况下工作。 将此添加到您的 pom 中,或为 -DuseSystemClassLoader=false 输入 mvn 选项
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.19.1</version>
<configuration>
<useSystemClassLoader>false</useSystemClassLoader>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
【讨论】:
以上是关于如何使 maven cobertura 和 surefire 插件一起工作?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用来自 Hudson 的 Maven 生成 Cobertura 代码覆盖率报告
使用 maven 运行 junits 和 cobertura