2009-09-03 42 views
0

我有一個.DLL包含COM/DCOM對象的.NET運行時可調用包裝。VS2008中的代碼覆蓋.net運行時可調用包裝

我在VS 2008的C#中編寫了一個測試套件,它調用了上述.DLL中的我們的服務器功能。

當代碼覆蓋率打開並且運行測試套件時,代碼覆蓋率測試結果不會產生任何統計信息並顯示「未覆蓋」和「被覆蓋」塊的零值。

有誰知道爲什麼會這樣嗎?

任何人都知道如何獲得.dll代碼覆蓋哪些是.net可調用包裝器?

回答

0

我不知道你使用的代碼覆蓋率引擎是如何工作的,但他們通常使用分析API +一些反射來確定代碼被執行的代碼覆蓋率。

我懷疑RCWs主要是本機代碼,橋接管理對象和它們的原生COM對象之間。

您可以通過在生成的互操作程序集(爲您的COM對象託管RCW)上運行.NET Reflector來驗證此問題,並查看它們實際包含的託管代碼的數量。

但是,一旦你通過互操作邊界,所有都會丟失,那麼你就不再處於受管理的領域。你需要一個本地覆蓋工具來收集這方面的統計數據。