我在eclipse中使用Cobertura为我的java maven项目生成代码覆盖率,它工作正常。我有大约15个测试类。每当我运行maven build时,它会为所有这15个类生成代码覆盖。
有什么办法,我可以为我的测试classess而不是所有的测试类运行cobertura代码覆盖率报告吗?我也有AllTests
其中我只提到了几个测试类,但我猜cobertura不使用AllTests
。
答案 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