如何使 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

maven 多模块项目上的 cobertura

Maven 找不到 maven-plugins:maven-cobertura-plugin

使用 Cobertura Maven 插件运行集成测试

spring && Cobertura && maven &&junit 单元测试以及测试覆盖率