C# - 单元测试 - 如何计算代码覆盖率

时间:2013-07-05 07:24:00

标签: unit-testing code-coverage specflow

b.s Specflow,Unit Test

我正在单元测试中实现Statement Coverage,我已经确定了if条件,尝试catch块e.t.c,我将编写的场景将覆盖所有代码,为我的单元测试提供100%的语句覆盖率。

问题是我知道这些场景正在进行100%的代码覆盖,任何运行这些测试的人都不知道它提供了多少语句覆盖率。没有测试的输出或任何其他可以告诉其他关于声明覆盖百分比的东西。

怎么做||如何完成

1 个答案:

答案 0 :(得分:3)

最佳实践(您的评论表明您应该遵循)将是设置构建服务器。任何旧盒子都可以,甚至是你自己的盒子,但是在一个合理规模的企业中,一旦你证明了概念证明,就确保你过渡到一个合适的盒子。

我假设您的组织中已经有版本控制,这意味着构建服务器可以处理您的代码副本。

我会安装TeamCity(免费提供20种构建配置)并使用其基于Web的界面来设置构建。您只需为Visual Studio添加一个步骤,并将其指向您的解决方案。为NUnit添加另一个步骤,并勾选该框以获得覆盖结果。

最重要的是,你也可以了解正在发生的事情 Some stats 这个项目是用户界面因此覆盖率低,我也回滚了一个没有成功的重新设计,导致测试中断。

TeamCity网站上有很多详细信息

然而,@ Steve评论时,查看所涵盖代码的最佳方式必须是NCrunch 。我也一直使用它,你不仅可以尽快运行测试,而且可以看到哪些行受到影响,但你也可以获得非常好的测试调试支持。

Inline coverage in NCrunch