【问题标题】:Excluding some classes from cobertura report从 cobertura 报告中排除某些类
【发布时间】:2012-12-28 11:26:00
【问题描述】:

我正在使用 gradle-cobertura 插件来生成测试覆盖率报告,该报告可以在 here 找到。该插件工作得非常好。现在我试图从覆盖率报告中排除一些类。我试图通过使用闭包来配置约定属性来自定义 Cobertura 插件的行为,如下所示:

cobertura {
    coverageSourceDirs = sourcesSets.main.groovy.srcDirs
    coverageExcludes = ['class_name.groovy']
}

但覆盖率报告仍显示我已排除的类。任何帮助将不胜感激。

感谢和问候, 地甘塔

【问题讨论】:

  • 排除时是否使用了全限定类名(包+类名)?
  • 是的,我使用了完全限定的类名。例如lb.web.WebContextListener
  • 根据文档,您似乎需要转义点,例如lb\.web\.WebContextListener。顺便说一句:我认为这个插件不再被维护了。我建议您查看仍在维护的another Cobertura plugin
  • 我已经尝试过您提到的新插件。还尝试了配置选项“忽略”和“排除”,但仍然没有结果。有什么帮助吗?
  • 我建议在他们的 GitHub 页面上询问插件作者。

标签: code-coverage gradle cobertura


【解决方案1】:

您需要使用正则表达式。

cobertura {
   coverageSourceDirs = sourcesSets.main.groovy.srcDirs
   coverageExcludes = ['.*com\\.myCompany\\.class_name.*']
}

插件页面上的示例仅显示了一个反斜杠来转义点,但我发现我必须使用双反斜杠(我使用的是 gradle 1.4)。

我还将在 cmets 中支持使用更新的 gradle cobertura 插件的建议 - 我很幸运 this one

【讨论】:

  • 不,它不起作用。我已经尝试过您提到的新 gradle cobertura 插件。我也尝试了很多正则表达式,但没有一个给出想要的结果:(。我使用的是 gradle 1.1
猜你喜欢
  • 1970-01-01
  • 2015-06-18
  • 2011-07-01
  • 1970-01-01
  • 2018-09-27
  • 1970-01-01
  • 1970-01-01
  • 2015-03-27
  • 2014-06-30
相关资源
最近更新 更多