【发布时间】:2011-05-10 01:03:10
【问题描述】:
鉴于似乎没有关于good level of code coverage for unit tests 是什么的硬性规定,那么使用诸如 NCover 之类的代码覆盖工具有什么好处?
【问题讨论】:
标签: unit-testing code-coverage
鉴于似乎没有关于good level of code coverage for unit tests 是什么的硬性规定,那么使用诸如 NCover 之类的代码覆盖工具有什么好处?
【问题讨论】:
标签: unit-testing code-coverage
在您的测试套件上运行覆盖率工具的主要优点是可以找到测试不佳的代码区域。我经常按程序集、命名空间和类查看我的覆盖率数字,以查找尚未测试但确实应该测试的代码。
【讨论】:
正如您所指出的,仅根据代码覆盖率来衡量软件质量是错误的。但是 NCover 允许您准确检查代码库的哪些部分被单元测试忽略了。由于您应该知道代码的哪些部分执行频率最高,哪些部分最容易出错,因此 NCover 有助于确保它们至少正在被测试。
【讨论】:
代码覆盖率,作为一个指标,为您提供了两个重要的信息: 首先,它告诉您单元测试涵盖了哪些内容以及未涵盖的内容。如果您将其与代码的静态分析一起使用,您可以轻松找到经常使用且未经测试的复杂代码。当前未测试的复杂、常用代码是您希望为其添加测试的代码。
其次,如果您遵循代码覆盖率的趋势,您可以检测您是否在测试代码方面变得“更好”,或者正在引入遗留代码(即未经测试的代码);您可能希望让您的自动构建运行代码分析,让您知道覆盖率是否正在下降(表明有人正在签入未经测试的代码)。
【讨论】: