カバレッジフィルターを設定する
場合によっては、カバレッジ分析の範囲を制限する必要があります。例: 複数のプロジェクトと何千ものテストを含む大スコープなアプリケーションの開発に参加する場合、これは理にかなっています。この場合、ソリューション内のすべてのプロジェクト (型、型メンバー) のカバレッジを分析する必要はなく、作業中のコードに関連するものだけを分析する必要があります。もう 1 つの例は、現在関心のないノード (名前空間、クラス、メソッド) を除外して、カバレッジツリーの「ノイズを減らす」ことです。このような場合は常に、カバレッジフィルターを適用する必要があります。
フィルタータイプ:
- 実行時カバレッジフィルター
dotCover は、カバレッジセッション中にこれらのフィルターを適用します。これらのフィルターを使用して、不要なコードを分析から除外し、カバレッジセッション時間を短縮します。
dotCover 設定を使用するか、ソースコードにコメントを追加することにより、ランタイムカバレッジフィルターを指定できます。
- カバレッジ結果のフィルター
dotCover は、カバレッジセッションが終了した後、これらのフィルターをカバレッジ結果(カバレッジツリー)に適用します。使用して、現時点で表示したくないノードを除外します。詳細
dotCover 設定でランタイムカバレッジフィルターを指定する
dotCover 設定を使用して、特定の名前空間、プロジェクト、タイプ、タイプメンバー、属性のランタイムカバレッジフィルターを指定できます。
フィルターは実行時に適用されるため、dotCover はフィルタリングされたアイテムをカバレッジスナップショットに含めず、カバレッジ結果ブラウザーウィンドウまたはユニットテストカバレッジウィンドウに表示しません。
ランタイムカバレッジフィルターを追加する
ReSharper 設定
でフィルター設定ページを開きます。実行時カバレッジフィルターで、必要なフィルター規則の横にある 追加 ... をクリックします。
コードのみを分析する : カバレッジ分析に含めるアセンブリ、クラス、メソッドを指定します。他のすべてのコード項目は除外されます。コードアイテムは、互いに独立してフィルタリングされます。例: メソッドを指定し、アセンブリとクラスにアスタリスク
*
を残して、すべてのアセンブリとすべてのクラスから指定された名前のメソッドのみを含めることができます。コードを分析しない : カバレッジ分析から除外するアセンブリ、クラス (完全修飾名が必要)、メソッドの名前を指定します。コード項目は相互に独立してフィルタリングされます。
属性でマークされたコードを分析しません : カバレッジ分析からシンボルを除外するために使用されるクラスの完全修飾属性名を指定します。例:
System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
または*.ExcludeFromCodeCoverageAttribute
フィルターでコード項目名を指定するときに、アスタリスクのワイルドカードを使用できます。
*
(アスタリスク)は、0 個以上の文字を表します。例: コードを分析しないで
*.Tests
ワイルドカードを使用して、すべてのテストプロジェクトをコード分析から除外できます。保存をクリックしてフィルター設定を保存し、変更を適用します。
システムおよび非ソリューションアセンブリをアプリケーションカバレッジ分析から除外する
アプリケーションのカバレッジ分析を実行する場合、フィルターオプションに非ソリューションおよびシステムアセンブリ用の追加のフィルターがあります。
(推奨)ソリューション内のアセンブリについてのみカバレッジを分析する場合は、システムアセンブリを除外するとソリューション以外のアセンブリを除外する両方を選択してください。これにより、カバレッジ分析が速くなります。
一度に複数のソリューションからアセンブリのカバレッジを分析する場合は、ソリューション以外のアセンブリを除外するをクリアしてください。
システムアセンブリのカバレッジを分析する場合は、システムアセンブリを除外するをクリアします。
ランタイムカバレッジフィルターを共有する
ソリューション全体のフィルターはソリューションチーム共有設定レイヤーに保存されるため、このソリューションに取り組んでいる他の開発者間で共有できます。
実際、ソリューション全体のフィルターを共有するために必要なのは、[SolutionName].sln.DotSettings ファイルをバージョン管理システム(VCS)のソリューションフォルダーに置くことだけです。他のチームメンバーがこのファイルを VCS から取得すると、フィルターはコンピューター上にも適用されます。
Visual Studio に統合される他の JetBrains 製品は、ソリューション全体のチーム共有設定を同じファイルに保存する場合があることに注意してください。このファイルを VCS に配置する場合は、他の製品の設定も共有される可能性があることに注意してください。詳細については、dotCover 設定の管理と共有を参照してください。
ソースコードでランタイムカバレッジフィルターを指定する
ランタイムカバレッジフィルターを指定する別の方法は、ソースコードにコメントを追加することです。これにより、コードの特定の部分をカバレッジ分析から除外できます。
カバレッジ分析から特定のコードを除外する
プロジェクトで、JetBrains.dotCover.MSBuild(英語) NuGet パッケージへの参照を追加します。これは開発専用の依存関係であり、プロジェクトに実行時の依存関係として含まれることはありません。
分析から除外するコードにコメントを付けます。次のコメントがサポートされています。
// dotcover disable var a = 1; var b = 10; // dotcover enable /* dotcover disable */ var c = 1; /* dotcover enable */ var d = 1; // dotCover disable this line // dotcover disable next line var e = 100;
カバレッジ結果のフィルターを指定する
カバレッジセッションが終了した後、dotCover はこれらのフィルターをカバレッジ結果に適用します。これらのフィルターを使用
ユニットテストカバレッジから現在興味のないノードを除外(名前空間、クラスなど)。
ユニットテストカバレッジからファイル全体を除外します。例: これは、自動生成されたファイル(つまり、これらのファイルで宣言されているクラスおよびメソッド)を結果から除外する場合に役立ちます。
カバレッジ結果からノード(名前空間、クラス、クラスメンバー)を除外する
カバレッジを開くと、カバレッジ結果ブラウザーウィンドウまたはユニットテストカバレッジウィンドウが開きます。
ノードを選択して、コンテキストメニューで以下を選択します。
現在の結果からノードを除外する報道結果から除外します。
結果からノードを除外し、将来のカバレッジセッションでこのノードのカバレッジデータを収集しないようにする、対応するランタイムフィルターを作成する実行時カバレッジフィルターの除外と作成。
カバレッジツリーで選択したノードだけを残すには、これ以外をすべて除外を押します。
除外されたノードを表示する
カバレッジ結果ブラウザーウィンドウまたはユニットテストカバレッジウィンドウの上部にあるすべてのノードを表示リンクをクリックします。
カバレッジ結果からファイルを除外する
メインメニュー
を使用してフィルタリング設定を開きます。ファイルマスクを除外するリストを見つけてください。
をクリックして、特定のファイルマスク用の新しい除外フィルターを追加します。
ファイルマスクで Ant スタイルのワイルドカード(英語)を使用できます。
ディレクトリ区切り文字を除く単一文字に一致する
?
ディレクトリ区切り文字を除く 0 文字以上に一致する
*
ディレクトリ区切り文字を含む任意の数の文字に一致する
**
OS パス形式に関係なくディレクトリ区切り文字と一致する
/
または\
たとえば、パターン
**Test?\**.*
は次のファイルと一致します。C:\Projects\MyTestX\data\file_one.txt
/home/projects/TestY/file_two.xml
だがしかし:
C:\Projects\Test\data\file_one.txt
/home/projects/TestY/file_two
関連ページ:
外部アプリケーションのカバレッジ分析を開始する
dotCover を使用すると、PDB 情報を持つ .NET アプリケーションおよびプロセスのカバレッジ分析を実行できます。次のタイプのアプリケーションとプロセスのカバレッジを分析できます。スタンドアロンアプリケーション、.NET および .NET Core アプリケーション、Mono アプリケーション、IIS を使用した Web アプリケーション、IIS Express を使用した Web アプリケーション、Windows サービス、WCF サービス、WinRT アプリケーション、外部 .NE...
カバレッジ結果ブラウザーウィンドウ
このウィンドウでは、アプリケーションカバレッジの実行中に取得された、またはファイルから開かれたカバレッジスナップショットを探索できます。複数のタブで複数のスナップショットを参照できます。各スナップショットは 2 つのビューで表示でき、ツールバーの右側にあるボタンで切り替えることができます。カバレッジツリー:このビューでは、すべてのコード項目がツリー構造でグループ化され、各コード項目のカバレッジを調べることができます。カバレッジ列では、dotCover は 3 つの色を使用してカバレッジステータ...
ユニットテストカバレッジ
このウィンドウでは、単体テストカバレッジの実行中に取得されたカバレッジデータを探索できます。各スナップショットは 2 つのビューで表示でき、ツールバーの右側にあるボタンで切り替えることができます。カバレッジツリー:このビューでは、すべてのコード項目がツリー構造でグループ化され、各コード項目のカバレッジを調べることができます。カバレッジ列では、dotCover は 3 つの色を使用してカバレッジステータスを表示します。緑 — ノード内のカバーされたステートメントのパーセンテージ。赤 — ノード内のカ...
フィルター
このページでは、カバレッジフィルターを構成できます。使用して、カバレッジ範囲を狭めます。コードのみを分析するカバレッジ分析に含めるアセンブリ、クラス、メソッド。他のすべてのコード項目は除外されます。コードアイテムは互いに独立してフィルタリングされます。コードを分析しないカバレッジ分析から除外するアセンブリ、クラス、メソッドの完全修飾名。コード項目は相互に独立してフィルタリングされます。属性でマークされたコードを分析しませんカバレッジ分析からシンボルを除外するために使用される完全修飾属性クラス名。...
dotCover 設定の管理と共有
dotCover は、レイヤード設定のメカニズムを使用して環境設定を保存します。これにより、次の利点があります。さまざまなソリューションで異なる設定を行うことができます。環境設定のさまざまなサブセットを別の場所に保存し、特定のソリューションで作業するときに環境設定を組み合わせることができます。設定の特定のサブセットを VCS に保持することにより、チーム内の設定を同期できます。dotCover は、チーム設定を別のファイルに保持するデフォルトのオプションを提供します。このファイルはソリューション...
コマンドラインからのカバレッジ分析
dotCover コマンドラインツールを使用すると、次のことが可能になります。任意のテストランナー(MSTest、NUnit、xUnit、MSpec など)を使用してカバレッジ分析を実行し、実行されたテストのカバレッジをカバレッジスナップショットに記録します。マージコマンドを使用してカバレッジスナップショットをマージします。たとえば、異なるテストフレームワークを使用するユニットテストのスナップショットを結合します。レポートコマンドを使用して、さまざまな形式でカバレッジレポートを生成します。さらに...