我在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