2009-06-04 138 views
48

有没有办法将代码从包含中排除到Cobertura覆盖率报告中?我们有一些方法不应包含在覆盖报告中,因此不会降低覆盖率。排除Cobertura代码覆盖的方法

我知道Clover具有这样的功能,但是我还没有发现Cobertura的任何类似功能。

+0

希望它即将推出。问题:http://sourceforge.net/tracker/?func=detail&atid=720017&aid=3010530&group_id=130558以及有关发布的对话,以包含此http://sourceforge.net/mailarchive/forum.php?thread_name=0F4966F4B6F55240A08C5F9AD979B3BE07E7EFB3%40MERCMBX16D。 na.SAS.com&forum_name = cobertura-devel – 2012-06-18 23:46:34

+0

请参阅[这篇文章](http://stackoverflow.com/questions/8848585/excluding-java-files-in-sonar-report-through-jenkins/13003357#13003357),这是与科纳图拉的声纳和詹金斯排除代码的选项,但我希望它的答案可以申请非詹金斯项目 – 2012-10-22 00:03:54

回答

52

您可以从检测中排除类。然后他们不应该出现在报告中。请参阅以下排除声明。

您也可以忽略对某些方法的调用。见忽略声明如下。

如果您使用的是maven,请参阅maven plugin manual

<configuration> 
     <instrumentation> 
     <ignores> 
      <ignore>com.example.boringcode.*</ignore> 
     </ignores> 
     <excludes> 
      <exclude>com/example/dullcode/**/*.class</exclude> 
      <exclude>com/example/**/*Test.class</exclude> 
     </excludes> 
     </instrumentation> 
    </configuration> 

而对于蚂蚁见this

<cobertura-instrument todir="${instrumented.dir}"> 
    <ignore regex="org.apache.log4j.*" /> 
    <fileset dir="${classes.dir}"> 
    <include name="**/*.class" /> 
    <exclude name="**/*Test.class" /> 
    </fileset> 
    <fileset dir="${jars.dir}"> 
    <include name="my-simple-plugin.jar" /> 
    </fileset> 
</cobertura-instrument> 
+0

谢谢。有什么可以添加到代码来排除方法吗?比ANT中的一长串名单要容易得多。任何注释支持? – ReneS 2009-06-05 06:42:28

+0

我对Cobertura文档做了一个很快的搜索,但是我找不到关于Cobertura的注释。所以你似乎需要在你的单元测试或包结构上工作,以使排除列表更短;) – 2009-06-05 06:52:04

+0

好吧,这证实了我没有错过任何东西。希望有一个隐藏的功能...好吧,也许我们迟早会得到一个。谢谢! – ReneS 2009-06-05 10:27:15

3

的Cobertura目前不提供这样的功能,而且也没有艾玛(我们使用),虽然它被列为即将召开的增强 - 虽然在一个扩展排除规则的形式,我相信,而不是作为注释。

会很方便地干净地覆盖那些几个不可进入的角落,以便您可以争取100%而不会变得荒谬。

我想注释很可能是做一个更加友好的方式,但他们应该得到公平的明确命名和基于可接受的方案的列表上,因为我害怕,否则像“@ExcludeFromCoverage”会得到慷慨增加了。

21

这已经打破了我的头一段时间了。

我的问题是我在报告部分而不是构建部分cobertura maven插件安装程序。

如果您没有在生成部分中设置它,则不会应用检测设置,因此不包括类或包,因此请小心。

17

还记得排除内部类。

<exclude>path/to/class/MyClass*.class</exclude> 

我花了很多时间才注意到我错过了一个星号!

相关问题