如何让Visual Studio显示0%代码覆盖率的dll的代码覆盖率结果?

时间:2010-11-09 20:28:50

标签: visual-studio-2010 code-coverage

我编写了一个程序,告诉我代码覆盖率结果文件中的所有dll是否都高于指定的代码覆盖百分比。

除非dll具有0%的代码覆盖率,否则效果很好,因为具有0%代码覆盖率的dll根本不包含在visual studio代码覆盖率结果文件中。

我可以访问为此代码覆盖率运行检测的dll列表,但如果可以的话,我更愿意只查看代码覆盖率文件。

有没有办法让Visual Studio为代码覆盖百分比= 0%的dll添加代码覆盖率结果?

2 个答案:

答案 0 :(得分:4)

完全披露:我是开发此功能的团队。

不幸的是,代码覆盖率文件中不存在此信息。当检测到二进制文件时,我们插入特殊的探测器来告诉我们它存在并检测每个代码块的执行时间。

我们不会在目标进程中保存DLL列表,因此我们只知道执行的已检测DLL(仅仅是检测不够)。

最简单的解决方法就是您在问题中提到的内容。

感谢您的反馈,我们会考虑到这一点。抱歉这里有困难。

答案 1 :(得分:0)

我们使用的技巧是添加一个带有特殊Test的Test Project,它在每个程序集中调用一个特殊的公共静态方法,只做返回true。这样,组件至少被击中一次,并且一个班轮不会真正影响总覆盖率数据。

我在一些项目中使用了Reflection来实现这一点,现在我们只是将CodeCoverageTest项目添加到每个程序集中的每个解决方案和CodeCoverage.Ensure()方法中。