有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

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

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


共 (1) 个答案

  1. # 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