0

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

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

打开代码覆盖并运行测试套件时,代码覆盖测试结果没有产生任何统计数据,并且未覆盖和覆盖块都显示为零。

有谁知道为什么会这样?

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

4

1 回答 1

0

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

我怀疑 RCW 主要是本机代码,是托管对象和它们的本机 COM 对应物之间的桥梁。

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

但是,一旦您越过了互操作边界,一切都将丢失,那么您将不再处于托管区域。您需要一个本机覆盖工具来从那一侧收集统计信息。

于 2009-09-04T05:10:38.113 回答