如何运行cobertura代码覆盖几个测试类,而不是我所有的测试类



我在eclipse中使用Cobertura为我的java maven项目生成代码覆盖率,它工作得很好。我大约有15个测试课程。每当我运行maven构建时,它都会生成所有这15个类的代码覆盖率。

是否有任何方法,我可以运行cobertura代码覆盖率报告为我的测试类的少数而不是所有的测试类?我也有AllTests,我只提到了我的几个测试类,但我猜cobertura不使用AllTests

如果您正在使用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不检测某些文件。在测试运行期间不会记录对这些类的命中。这里,**表示递归搜索(比current低任何深度的任何目录)。因此,该示例声明:排除任何在其完全限定名称中有package1.package2包的类。

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

其他细节可以在这里找到:Mojo的Maven插件用于Cobertura - Usage

最新更新