【问题标题】:Sonar C# plugin don't take into account 100% covered filesSonar C# 插件不考虑 100% 覆盖的文件
【发布时间】:2011-11-17 17:38:27
【问题描述】:

我们使用以下套件来分析我们的 .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 的总覆盖率计算中。有没有办法对此进行参数化?

【问题讨论】:

    标签: c# code-coverage sonarqube partcover


    【解决方案1】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      • 2022-01-06
      • 2018-05-31
      • 2017-11-03
      相关资源
      最近更新 更多