Sonar c#插件不考虑100%覆盖的文件

本文关键字:覆盖 文件 100% 不考虑 插件 Sonar | 更新日期: 2023-09-27 18:08:34

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

    Maven 2.2.1
  • Gallio 3.2.750
  • PartCover 4.0.20626
  • 声纳2.9
  • Sonar c#插件生态系统1.0

当我们在Partcover资源管理器中打开覆盖率报告文件(使用Maven/Gallio/Partcover构建)时,我们有一些100%覆盖率的文件,因此全球覆盖率为97%。

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

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

这是正常行为吗?是否有需要配置的参数?

更新将OPs的答案添加到问题

我们再分析一下这个问题。事实上,这并不是因为100%覆盖了文件,而是因为接口。的确,它们没有被PartCover或NCover分析(xml输出中没有信息),但它们被包括在Sonar的总覆盖计算中。有没有办法把这个参数化?

Sonar c#插件不考虑100%覆盖的文件

接口没有代码要检测,因此您将无法获得它们的任何覆盖率数据,这适用于NCover, PartCover和OpenCover。只有当它们实际实现时,您才能获得覆盖率信息。

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

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

如果您追求的是代码覆盖率度量,那么就使用覆盖率工具提供的内容,并解释其他内容