使用 FxCop 获得百分比代码覆盖率

Get percent code coverage with FxCop

我目前正在尝试为 C# 代码库编写单元测试库。我想查看我的测试实现的代码覆盖率百分比。我正在使用没有任何内置代码分析工具的 VS2010。我已经下载了 FxCop 并将其包含在 VS2010 的外部工具中,但我不知道如何获得代码覆盖率。我相信可以通过为此制定规则来完成,但我不确定。我查看了规则集以及如何创建自定义规则,但我不确定如何实施它或我将使用哪些规则集库。

总的来说,我对 FxCop 和外部分析工具完全陌生,所以一步一步或任何方向都很好!

据我所知,FxCop 的任何版本,即使是最新的 CodeAnalysis 2017,都不会导入代码覆盖率数据。

您可以试用 VisualStudio coverage、NCover 和 dotCover 中的工具 NDepend. It can import code coverage data。然后您可以通过多种方式利用此代码覆盖率数据:

  • 编写一个规则来检查所有 类 具有特定属性(例如名为 FullCoveredAttribute 的属性)的所有内容是否都被 100% 覆盖
  • 编写一个规则,检查所有 类 在基线时被 100% 覆盖,仍然被 100% 覆盖(NDepend 有 baseline 的概念来检查进化)
  • 写一个规则来比较代码覆盖率和其他各种代码指标,比如 Cyclomatic Complexity,建议复杂 类 和方法得到 100% 覆盖
  • 使用基于彩色树图的 metric view 可视化代码覆盖率数据。在下面的截图中,小矩形是方法。面积与#lines of code 成正比,颜色取决于代码覆盖率百分比(绿色 = 100% 黄色 = 80% 红色 = 0%)

代码覆盖意味着 运行 检测代码并收集有关正在执行的代码路径的统计信息。 FxCop 是一个静态分析工具。你有一个 XY problem.

的实例