VS2008中.net运行时可调用包装的代码覆盖率

时间:2009-09-03 18:33:08

标签: .net visual-studio visual-studio-2008 com rcw

我有一个.DLL,其中包含COM / DCOM对象的.NET Runtime可调用包装。

我在VS 2008中用C#编写了一个测试套件,它调用了上面提到的.DLL中的服务器函数。

当打开代码覆盖率并运行测试套件时,代码覆盖率测试结果不会产生任何统计信息,并显示“未涵盖”和“涵盖”块的零。

有谁知道为什么会这样?

任何人都知道如何在.dll上获得.net可调用包装器的代码覆盖率?

1 个答案:

答案 0 :(得分:0)

我不确定您使用的代码覆盖引擎是如何工作的,但是他们通常使用分析API +一些反映来确定执行托管代码的内容。

我怀疑RCW主要是本机代码,在托管对象和本机COM对应框架之间进行桥接。

您可以通过在生成的互操作程序集(托管COM对象的RCW)上运行.NET Reflector来验证这一点,并查看它们实际包含的托管代码量。

然而,一旦你越过了互操作边界,一切都会丢失,那么你就不再处于管理区域了。您需要一个原生覆盖工具来收集该方面的统计数据。