56

TestDriven.Net と Visual Studio のカバレッジ機能 (つまり、コンテキスト メニューから [Test With] -> [Coverage]) を使用して、テスト カバレッジを確認した既存の C# 4 プロジェクトがあります。

プロジェクトにはカバーしたくないコードが含まれており[ExcludeFromCodeCoverage]、それらの型とメソッドに を追加することで解決しました。

TeamCity を 6.0.3 にアップグレードしたばかりで、dotCover カバレッジを NUnit ビルド ステップに追加しました。

「フィルター」セクションで NHibernate などの外部アセンブリのカバレッジを削除することができました (カバレッジが必要なアセンブリを明示的に指定することにより) が、対象となるアセンブリから型とメソッドを除外する方法に苦労しています。

ここに画像の説明を入力

4

3 に答える 3

66

わかりました、マーティン、私はそれを理解しました! フィルター構文をランダムに突き刺すのに1時間しかかかりませんでした...ドキュメントがこのようなフィルターを追加するように言っているとき

+:myassembly=*;type=*;method=***

彼らは本当にこれを意味します... の<>すべてがあなたに完全に置き換えられ、それ以外はリテラルです

+:<myassembly>;type=<filter>;method=<filter>

したがって、私が望んでいたフィルターは、(一連のアセンブリから) 1 つのアセンブリを含め、そのアセンブリ内のいくつかの名前空間を除外することでした。私が書いた

+:Omnyx.Scanner
-:Omnyx.Scanner;type=Omnyx.Scanner.Simulation.*
-:Omnyx.Scanner;type=Omnyx.Scanner.ToolsCommon.*
于 2011-06-01T22:51:08.997 に答える
3

コマンド ラインからのカバレッジ分析 - フィルターの適用ページをご覧ください。アセンブリ全体を除外する方法と同様に、フィルター セクションで除外を設定できるようです。

ライブラリDoStuffにある classMyStuffに含まれるというメソッドを無視したいとしましょう。MyAwesomeAssembly次に、dotCover XML は次のようになります。

<Filters>
  <ExcludeFilters>
     <FilterEntry>
       <ModuleMask>MyAwesomeAssembly</ModuleMask>
       <ClassMask>MyStuff</ClassMask>
       <FunctionMask>DoStuff</FunctionMask>
     </FilterEntry>
  </ExcludeFilters>
</Filters>

免責事項:私は dotCover を使用していないため、これが実際に機能するかどうかは 100% 確信が持てません。

于 2011-05-03T04:59:29.430 に答える
0

これは、TeamCityドキュメントがフィルターオプションについて述べていることです。

次の構文を使用して、行ごとに1つずつプロファイルするアセンブリを指定します。+:myassembly = ; type = ; method = *

-:myassemblyを使用して、アセンブリをコードカバレッジから除外します。ここでは、アスタリスクワイルドカード(*)がサポートされています。

于 2011-05-06T12:57:53.003 に答える