0

今天我遇到了 Visual Studio 2012 和 SONAR 代码覆盖分析之间的一些差异。

当我执行Visual Studio 2012代码覆盖率分析测试->分析代码覆盖率->所有测试时,它会抛出以下值

  • 未覆盖 37%
  • 覆盖 63%

但是当我通过SONAR(gallio 和 dotcover)执行此分析时,它会抛出以下值

  • 单元测试覆盖率 55%

我从 Visual Studio 中的dotcover得到的结果非常相似。

  • 代码覆盖率 53%

我没有在sonar-runner 属性文件中添加任何特殊标志。或者在dotcover中设置一些东西。

4

1 回答 1

1

代码覆盖率是一种工具,可让您找到测试无法执行的代码行。这是一个反复无常的事情,要达到 100% 通常需要跳过许多圈子以获得微薄的收益。此外,每个代码覆盖率工具都会考虑不同的因素。

目前我最喜欢的测试运行程序是 ContinuousTests,它采用检查方法被测试和其他代码调用多少次的策略,构建一个图表来确定修改代码时所涉及的风险。这是测试某些东西时的一个很好的指标。

您也可以使用代码覆盖率,因为这可以帮助您确定代码分支的方式以及是否测试边缘情况,始终注意您的测试处理的是类的契约而不是内部。

所以最终,是的,您会看到来自不同工具的不同代码覆盖率结果。这并不是真正值得担心的事情。

于 2013-11-19T18:22:35.997 回答