0

COM/DCOM オブジェクトの .NET ランタイム呼び出し可能ラッパーを含む .DLL があります。

上記の .DLL にあるサーバー関数を呼び出す VS 2008 の C# でテスト スイートを作成しました。

コード カバレッジを有効にしてテスト スイートを実行すると、コード カバレッジ テストの結果は統計を生成せず、Not Covered ブロックと Covered ブロックの両方にゼロが表示されました。

なぜそうなるのか誰か知っていますか?

.net 呼び出し可能ラッパーである .dll のコード カバレッジを取得する方法を知っている人はいますか?

4

1 に答える 1

0

あなたが使用しているコード カバレッジ エンジンがどのように機能するかはわかりませんが、通常はプロファイリング API と何らかのリフレクションを使用して、どのマネージドコードが実行されているかを把握します。

RCW は主にネイティブ コードであり、マネージ オブジェクトとそれに対応するネイティブ COM の間を橋渡ししていると思います。

生成された相互運用機能アセンブリ (COM オブジェクトの RCW をホストする) で.NET Reflectorを実行することでこれを確認し、それらに実際に含まれるマネージ コードの量を確認できます。

ただし、相互運用の境界を越えると、すべてが失われ、管理された領域にはなくなります。その側から統計を収集するには、ネイティブ カバレッジ ツールが必要です。

于 2009-09-04T05:10:38.113 に答える