0

我们使用以下套件来分析我们的 .Net4 项目:

  • Maven 2.2.1
  • 加里奥 3.2.750
  • PartCover 4.0.20626
  • 声纳 2.9
  • Sonar C# 插件生态系统 1.0

当我们在 PartCover Explorer 中打开覆盖率报告文件(使用 Maven/Gallio/Partcover 构建)时,我们会看到一些覆盖率为 100% 的文件,因此全球覆盖率为 97%。

但是在声纳覆盖率浏览器中我们看不到这些文件,然后全局覆盖率的计算下降到 65%。

我们尝试使用 NCover3,我们有相同的行为。

这是正常行为吗?有什么参数可以配置吗?

更新以添加 OP 对问题的回答

我们再分析一下这个问题。事实上,这不是因为 100% 覆盖的文件,而是因为接口。实际上,PartCover 或 NCover 不会分析它们(xml 输出中不存在任何信息),但它们包含在 Sonar 的总覆盖率计算中。有没有办法对此进行参数化?

4

1 回答 1

0

接口没有可检测的代码,因此您不会获得它们的任何覆盖率数据,这适用于NCoverPartCoverOpenCover AFAIK。您只有在实际实施时才能获得覆盖率信息。

Sonar 覆盖浏览器可能正在处理实际的代码行,而不是最终变成代码的内容;通过序列点的数量(以及 NCover/OpenCover 的分支点)来衡量。

要排除接口、枚举和抽象方法、自动实现的属性等代码 - 需要进行大量的解析,并且是特定于语言的。

如果您追求代码覆盖率指标,请使用覆盖率工具为您提供的内容并解释其余部分

于 2011-09-20T02:52:50.267 回答