2

NCover 3 のライセンスをまだインストールしておらず、ビルド サーバーで 1.5.8 を実行しています。レポートに含めたくない完全なアセンブリと特定のクラスを除外しようとしています。それらは人為的にカバレッジ結果を下げているからです。

NCoverExplorer では、[オプション] タブに完全な名前空間を指定できるカバレッジ除外セクションがあるため、オプションをいじっていました。私は完全に修飾されたクラスに参加しましたが、何らかの理由で、ほんの一握りのクラスしか除外されず、その理由がわかりません。たとえば、System.ComponentModel.Composition をリストに追加すると、除外されることはありません。

1.5.8 はベータ版であり、サポートも終了しているため、これは 1.5.8 の単なるバグでしょうか? サーバーの新しいライセンスを持っていますが、自宅のパソコンである程度の範囲をカバーできるようにしたいと考えています。

CoverageExcludeAttributeを使用して、この属性でマークされたクラス/メソッドを NCover が自動的にスキップするようにする、非常に優れた記事を見つけました。これは最良の選択肢ですか?

4

2 に答える 2

1

アセンブリを含める/除外するために正規表現を使用しようとしましたか -

//ias AuctionSniper([.\w]*?)(?<!Tests) AuctionSniper で始まり、Tests で終わらないすべてのアセンブリが含まれます。例: AuctionSniper.Main.exe セミコロンで区切られた複数のパターンを指定できます。
また//ias .*vendorsupplied.*;.*tests

これは NCover 3 で動作します。無料/コミュニティ エディションで動作する場合は、試してみてください。

于 2010-06-29T13:46:43.927 に答える
0

途中まで取得する 1 つの方法は、「カバレッジに含めるアセンブリ」オプションも使用することです。これにより、System.ComponentModel.Composition を無視することができました。ただし、他のほとんどのクラスと名前空間を除外しても機能しません。クラス全体を除外すると、メソッドのみが除外され、含まれているクラスは除外されないのは少し奇妙です。

于 2010-06-29T16:35:02.517 に答える