MSDN フォーラムでもこの質問をしましたが、解決策が見つかりませんでした。
http://forums.microsoft.com/msdn/ShowPost.aspx?PostID=3686852&SiteID=1
ここでの基本的な問題は、相互運用アセンブリには、インストルメント化できる IL が実際には含まれていないことです (おそらくいくつかのデリゲートを除く)。そのため、相互運用レイヤーを実行するテスト プロジェクトをまとめることはできますが、実際に呼び出しているメソッドとプロパティの数を把握することはできません。
プラン B は、RCWW (Runtime Callable Wrapper Wrappers) のライブラリを作成するコード ジェネレーターを作成し、コード カバレッジの目的でそれを計測することです。
編集:@Franci Penov、
はい、それはまさに私がやりたいことです。私たちに提供された COM コンポーネントは、約を含む数十の DLL のライブラリを構成します。3000種類。ライブラリを提供するグループが最小限のテストを行うため、アプリケーションでそのライブラリを使用し、その相互運用層をテストする責任があります。コード カバレッジにより、すべてのインターフェイスとコクラスが確実に実行されるようになります。それが私がやろうとしているすべてです。独自のマネージド コードを実行する別のテスト プロジェクトがあります。
はい、理想的には、COM サーバー チームが独自のコードをテストおよび分析する必要がありますが、私たちは理想的な世界に住んでおらず、彼らの作業に基づいて高品質の製品を提供する必要があります。コード インターフェイスの 80% をテストし、そのうちの 50% が宣伝どおりに機能しないことを示すテスト レポートを作成できれば、回避策の問題ではなく、修正が必要な場所で修正を行うことができます。
あなたが言及したモック レイヤーは便利ですが、最終的に相互運用レイヤー自体をテストするという目標を達成することはできません。私は確かにそれを手作業で維持したくありません。インターフェイスへの変更の。
上で述べたように、次のステップは、ラッパーのラッパーを生成し、テスト目的でそれらを計測することです。