如何为少数测试类而不是我的所有测试类运行cobertura代码覆盖?

时间:2014-06-08 20:42:55

标签: java maven junit cobertura

我在eclipse中使用Cobertura为我的java maven项目生成代码覆盖率,它工作正常。我有大约15个测试类。每当我运行maven build时,它会为所有这15个类生成代码覆盖。

有什么办法,我可以为我的测试classess而不是所有的测试类运行cobertura代码覆盖率报告吗?我也有AllTests其中我只提到了几个测试类,但我猜cobertura不使用AllTests

1 个答案:

答案 0 :(得分:1)

如果您使用的是Maven Cobertura插件,则可以使用两个单独的标签指定过滤:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <version>${cobertura.version}</version>
    <configuration>
        <instrumentation>
            <ignores>
                <ignore>org.apache.log4j.*</ignore>
                ...
            </ignores>
            <excludes>
                <exclude>**/package1/package2/**/*.class</exclude>
                ...
            </excludes>
        </instrumentation>
    </configuration>
</plugin>

<ignores>告诉Cobertura将所有调用排除到指定的包/类。上面的示例将忽略所有log4j日志记录调用的行。

<excludes>告诉Cobertura不要检测某些文件。在测试运行期间不记录对这些类的命中。这里**表示递归搜索(当前任何深度的任何目录)。因此,该示例说明:排除任何在其完全限定名称中具有package1.package2包的类。

您还有一个<includes>来指定一个类的白名单,而不是<excludes>

其他详情可在此处找到:Mojo's Maven plugin for Cobertura - Usage