2010-09-02 102 views
1

有没有可能在检查.Net版本代码覆盖范围时遇到麻烦? (IE方法内联或类似的编译器魔术?)使用版本代码覆盖代码

+0

是的。编译器经常内嵌代码。 – Grozz 2010-09-02 20:00:21

+1

Inline是在IL代码中发生,还是代码执行时(在运行时)?代码覆盖率如何:在运行时使用IL代码或生成的机器代码? – Benoittr 2010-09-02 20:40:46

回答

1

代码覆盖工具(包括NCover和VSTS)使用的代码单元是在PDB中找到的顺序点(当您将一个代码覆盖工具调试时断点)。

因此,如果您没有生成您的PDB文件,您将不会获得代码覆盖率指标。 要回答你的问题,只要你生成PDB文件(没有自己测试它,但我确实是95%的东西),你可以在发布模式上有代码覆盖率指标

你不会有问题像编译器内联那样发生在IL - > asm汇编运行时,由CLR Just in Time编译器执行。

+0

在我们的构建服务器Id上,更重要的是有一个单一的构建来支持测试和覆盖(并且尽可能靠近我们的产品代码)。所以我会继续发布代码并查看它的行为。谢谢。 – Benoittr 2010-09-03 13:45:53