この拡張機能は、Visual Studio Market Place (vs 2019)、Visual Studio Market Place (vs 2022) からダウンロードするか、リリースからダウンロードします。古いバージョンはここから入手できます。
.Net の場合 - テスト アダプターは nuget パッケージです。たとえば、NUnit テスト アダプター拡張機能だけでは十分ではありません。
Fine Code Coverage は、3 つの異なるカバレッジ ツールのいずれかを使用してコード カバレッジを提供します。以前のリリースでは、「古いカバレッジ」と呼ばれる OpenCover と Coverlet という 2 つのカバレッジ ツールが使用されていました。
Microsoft は現在、Visual Studio Fine Code Coverage 列挙オプション RunMsCodeCoverage を設定することで使用を選択できる無料のカバレッジ ソリューションを提供しています。これはおそらく、ほとんどの開発者にとって推奨されるカバレッジ ツールとなるでしょう。現在はベータ版です。
古いカバレッジでは、FCC が各ツールの除外/包含オプションの抽象化を提供することが可能でした。この抽象化は MS コード カバレッジでは機能しません。
したがって、Ms カバレッジと古いカバレッジには個別の設定オプションがあり、この 2 つに共通のオプションがあることがわかります。アセンブリ レベルの除外と包含を実現できます。「ExcludeAssemblies」と「IncludeAssemblies」を参照してください。構成は (ほとんどの場合) Visual Studio オプション、finecodecoverage-settings.xml ファイル、およびプロジェクトの msbuild プロパティによって決定されます。これらの設定はすべてオプションです。プロジェクト スコープを持つオプションの場合、これらの設定は階層を形成し、下位レベルがオーバーライドされるか、コレクションの場合は上位レベルをオーバーライドまたはマージします。これについてはさらに詳しく説明します。
使用されたカバレッジ ツールに関係なく、プロセスは FCC が Visual Studio のテスト エクスプローラーに反応することから始まります。 3 つのカバレッジ ツールの 1 つはカバレッジ結果を提供し、結果は Fine Code Coverage Tool ウィンドウのボタンから開くことができます。このカバレッジは動的ではなく、最後にテストを実行したときに取得されたカバレッジを表します。カバレッジが古くなった場合は、ツールの [FCC クリア UI] ボタンをクリックするか、カバレッジを再度実行できます。
FCC によるコード カバレッジの進捗状況の詳細は、Fine Code Coverage Tool ウィンドウの [Coverage Log] タブで確認でき、さらに詳細なログは FCC Output Window Pane に表示されます。問題が発生した場合は、出力ウィンドウからログを提供すると、問題の性質を理解するのに役立ちます。
Fine Code Coverage Tool ウィンドウに単一の統合レポートを表示します。このレポートには、クラス ファイルを開く機能を使用して、回線と分岐のカバレッジとリスク ホットスポットが表示されます。
コードのカバレッジ ステータスを示す色付きの余白。インスツルメントされた (組み込まれ、分析可能な) コード行は、カバーされているか、カバーされていないか、または部分的にカバーされています。これは、すべてのブランチが実行されたわけではないことを意味します。
FCC は、コードを変更すると、以前にインスツルメントされたコードがインスツルメントされたステータスを表示しなくなる、ダーティ リージョンの概念を提供します。
C# および Visual Basic については、さらに詳しいカバレッジ情報が提供されます。
FCC では、カバレッジに含まれていないコードや、前回のカバレッジ実行以降に追加された新しい行を確認することもできます。
ダーティラインと新しいラインの両方のカラーリングをオプションでオンにする必要があります。
必要に応じて、利用可能な Visual Studio オプションを設定することで行を強調表示することもできます。詳細については、以下をお読みください。
色は、Visual Studio / ツール / オプション / 環境 / フォントと色 / テキスト エディター / 表示項目で制御できます。
Visual Studio Community、Professional、Enterprise の場合は、次の設定を使用できます。
タッチエリア FCC のカバー範囲
部分的に接触したエリアの適用範囲 FCC
FCC が触れていない領域のカバー範囲
対象範囲 ダーティエリア FCC
対象範囲 新しい回線エリア FCC
対象外エリア FCC
以下の項目を提供するバージョンの場合、FCC は、テーマで定義された色を使用できるように、デフォルトで同等の FCC 項目よりもこれらを使用します。利用可能な 5 つの項目に一貫性を持たせたい場合は、UseEnterpriseFontsAndColors を false に設定できます。
タッチされていない領域のカバレッジ
部分的に触れた領域の範囲
タッチエリアのカバー範囲
Visual Studio のオプション EditorCoverageColouringMode を Off に設定することで、エディターのカラーリングをオフにできます。パフォーマンスの問題がある場合は、オプションを DoNotUseRoslynWhenTextChanges に設定することもできます。そうすると、新しい線の色があまり良くなくなります。 EditorCoverageColouringMode オプションのいずれかに切り替える場合は、カバレッジを再実行する必要があります。
エディターの色を切り替えることができます。 FCC は、[ツール] メニューにメニュー ボタン [Toggle Indicators] を追加しました。キーボード ショートカットを作成することもできます (ツール / オプション / 環境 / キーボード、「ToggleIndicators」を含むコマンドを表示)。
@code ブロックを含む Blazor コンポーネントの場合、これらの領域の外側にカバレッジ ラインが生成されることがあります。 Roslyn 構文ツリーが FCC で利用できる場合、BlazorCoverageLinesFromGeneratedSource オプションを true に設定して、.razor ファイル内のカバレッジ ラインを生成されたソース内のカバレッジ ラインに制限できます。
FCC は Visual Studio エディターを追跡し、ファイルを閉じるときにこの情報を保存します。ファイルを再度開いたときに、ドキュメント ウィンドウの外側でテキストが変更された場合、カバレッジ ラインは正しいことが期待されないため、このファイルにはカバレッジ マークは表示されません。
FCC が報道を収集している間にファイルを編集しても、編集者マークは表示されません。
古いカバレッジでは、FCC はテスト DLL と依存関係をコピーし、それらのファイルに対して OpenCover または Coverlet を実行する必要がありました。 ms コード カバレッジではこれは必要ありません。古いカバレッジでは、テストが完了するまで待ってから、カバレッジ ツールを開始してすべてのテストを再実行していました。 ms コード カバレッジではこれは必要ありません。以前の適用範囲はすべてのテストに基づいていました。 MS コード カバレッジは、テスト エクスプローラーで選択したテストからのカバレッジです。
C++をサポート! FCC は C++ プロジェクトでは適切にテストされていませんが、Google Test でテストされた単純な C++ クラスでは FCC がカバーしていることに注意してください。
まず、RunMsCodeCoverage オプションを No から変更する必要があります。
Ms コード カバレッジには、コード カバレッジ用に適切に構成された実行設定ファイルが必要です。これには、ms コード カバレッジ パッケージがあり、TestAdaptersPaths 要素でそれをポイントし、ms データ コレクターを指定している必要があります。除外と包含も実行設定で指定されます。ドキュメントではこれがどのように機能するかについて十分に明確ではないと思うので、この問題を確認するとよいでしょう。
FCC はこれを行う必要はありません。実行設定を指定せず、RunMsCodeCoverage が Yes の場合、FCC は実行設定を生成し、プロジェクト ファイルに必要なエントリを書き込みます。
テストの実行中に Visual Studio でテスト プロジェクト ファイルを開いていると、FCC がテストの終了時にエントリを削除するときに競合警告が表示される可能性があることに注意してください。 RunMsCodeCoverage が IfInRunSettings の場合、プロジェクトに正しく構成された ms データ コレクター要素を含む実行設定がある場合、FCC は収集された結果を処理します。
FCC には ms コード カバレッジ パッケージが含まれており、テスト エクスプローラー ウィンドウから実行される各テスト プロジェクトに必要な実行設定ファイルが作成されます。除外と包含は、古いカバレッジと同様の方法で、組み合わせられた設定から行われます。 ms コード カバレッジでは正規表現が使用され、Coverlet や OpenCover とは異なる除外/包含方法があるため、ms 固有の Visual Studio オプションと関連要素があります。
FCC は各テスト プロジェクトに実行設定ファイルを提供するため (ソリューション全体またはプロジェクト固有のファイルを提供していない場合)、プロジェクト ファイルに RunSettingsFilePath 要素を記述する必要があります。
FCC はこの要素の値をプロジェクト ファイルから削除しますが、この要素はまだ存在します。
FCC は、文字列置換を使用してテンプレートから実行設定を作成します。必要に応じて、独自のテンプレートを提供できます。 FCC は、プロジェクト ディレクトリまたはソリューション ディレクトリで fcc-ms-runsettings-template.xml を検索します。テンプレートは有効な XML ドキュメントである必要がありますが、すべての実行設定要素を指定する必要はありません。 FCC は、置換可能な ResultsDirectory 要素と TestAdaptersPaths (必要に応じてコンテナーの RunConfiguration 要素) 要素が存在しない場合は追加します。 FCC は、ms DataCollector / Configuration / CodeCoverage の置換可能な要素が存在しない場合は追加します。また、非除外/包含が推奨される CodeCoverage 要素のAllowLowIntegrityProcesses、CollectFromChildProcesses、CollectAspDotNet、およびUseVerifiableInstrumentationが提供されていない場合は追加します。 .Net Framework の場合、UseVerifiableInstrumentation は false になります。生成された実行設定を確認するには、プロジェクト ファイルの RunSettingsFilePath 要素を使用します。
FCC によって提供される独自の要素を提供するカスタム テンプレートの場合、テンプレートの置換に参加するには、%fcc_replace% タイプの文字列を追加する必要があります。
除外と包含は「%fcc_modulepaths_exclude%」の形式に従います。 FCC が fcc 提供の ms コード カバレッジ パスを TestAdaptersPaths に提供するには、%fcc_testadapter% を使用します。
独自の runsettings ファイルを使用し、FCC に追加して置き換えさせることもできます。 FCC は、TestAdaptersPaths 要素と ms データ コレクターが存在することを確認します。テンプレートの場合とは異なり、ms データ コレクターが存在する場合、xml には置換のみが適用されます。
Ms コード カバレッジは、デフォルトの Configuration / CodeCoverage 要素を提供します (指定されていない場合)。また、デフォルトの除外項目が存在しない場合は追加するか、属性 mergeDefaults='false' を追加しない限りそれらをマージします。たとえば、属性は ExcludeFromCodeCoverageAttribute を除外します。興味がある場合は、...AppDataLocalFineCodeCoveragemsCodeCoverage_version_buildnetstandard1.0Microsoft.VisualStudio.TraceDataCollector.dll および DynamicCoverageDataCollector を参照してください。
問題を報告する前に、トラブルシューティングを確認してください。
DLL はプロジェクト出力フォルダーのサブフォルダーにコピーされるため、テストに影響を与える可能性があります。別の方法は、オプション AdjacentBuildOutput を true に設定することです。カバレッジは、古いスタイルのプロジェクトの場合は OpenCover によって、新しいスタイルの SDK プロジェクトの場合は Coverlet によって提供されます。 FCC は両方の違いを無視できるように両方の抽象化を提供しますが、実行されるカバー ツールを認識することが重要な状況もあります。これは Coverlet を使用する場合に最も顕著になります。詳細については以下をお読みください。
もう 1 つのシナリオは、特定のバージョンのカバレッジ ツールを使用する場合です。これは設定可能です。
FCC が利用するカバレッジ ツールは、デフォルトで、 Environment.SpecialFolder.LocalApplicationData
内の FineCodeCoverage ディレクトリにインストールされます。これは、ToolsDirectory Visual Studio オプションを使用して変更できます。このディレクトリが存在することを確認してください。再起動すると、その中にツールがインストールされます。
(いくつかの) 単体テストを実行し、...
階層は次のとおりです。
a) Visual Studio オプション
b) Finecodecoverage-settings.xml ファイル
これらは、プロジェクト ディレクトリからディレクトリ構造をたどることで見つかります。属性 topLevel='true' をルート要素に適用すると、歩行が停止します。
プロジェクト ディレクトリにあるfinecodecoverage-settings.xmlとソリューション ディレクトリにあるfinecodecoverage-settings.xmlの場合、階層は次のようになります。
Visual Studio のオプション
ソリューションレベルのfinecodecoverage-settings.xml
プロジェクトレベルのfinecodecoverage-settings.xml
<FineCodeCoverage>
<Enabled>
True
</Enabled>
<!-- and more -->
</FineCodeCoverage>
c) msbuild プロジェクト ファイル
これらの設定を指定するには 2 つの方法があります。プロジェクトファイル内で直接
<PropertyGroup Label="FineCodeCoverage">
<Enabled>
True
</Enabled>
<Exclude>
[ThirdParty.*]*
[FourthParty]*
</Exclude>
<Include>
[*]*
</Include>
<ExcludeByFile>
**/Migrations/*
**/Hacks/*.cs
</ExcludeByFile>
<ExcludeByAttribute>
MyCustomExcludeFromCodeCoverage
</ExcludeByAttribute>
<IncludeTestAssembly>
True
</IncludeTestAssembly>
<ModulePathsExclude>
.*Fabrikam.Math.UnitTest.dll
</ModulePathsExclude>
<!-- and more -->
</PropertyGroup>
FineCodeCoverage 要素を使用します。
<PropertyGroup>
<FineCodeCoverage>
<Enabled>
True
</Enabled>
<!-- and more -->
</FineCodeCoverage>
</PropertyGroup>
これは、プロジェクト設定をプロジェクト ファイルの外部に保存し、msbuild Import を使用する場合に必要です。
msbuild はカスタム属性をサポートしていないため、設定要素を上のレベルの要素とマージしたい場合にも必要です。
デフォルトでは、各コレクション プロパティが上書きされます。これは、ルート要素でdefaultMerge='true'を設定することで、すべての設定で変更できます。
設定要素に merge 属性を指定すると、それが使用されます。
これは推移的ではありません。
<PropertyGroup>
<FCCExcludeFromCodeCoverage/>
</PropertyGroup>
<PropertyGroup>
<UseDataCollector/>
</PropertyGroup>
Coverlet にはさまざまな「ドライバー」があります。 Fine Code Coverage はこれまで、カバーレット コンソール ドライバーのみを使用していました。これにはいくつかの問題が関連しています。カバレッジ 0% または一貫性のないカバレッジが発生した場合は、Data Collector ドライバーに切り替えることができるようになりました。これはより優れたドライバーですが、すべてのプロジェクトに使用できるわけではありません。現時点ではこれはオプトインです。将来的には、Fine Code Coverage によって適切なドライバーが決定されます。バージョンのサポートについては、カバーレットのドキュメントを参照してください。
nuget coverlet.collector パッケージは FCC が内部で提供しているため、追加する必要がないことに注意してください。
Fine Code Coverage は、次の 2 つの状況でデータ コレクター ドライバーを使用します。
Coverlet Data Collector の設定はここにあります。上記のオプション 2) を使用している場合は、プロジェクト プロパティ (上記) とグローバル Visual Studio オプション (下記を参照) から共通設定 (除外と包含) が生成され、プロジェクト プロパティが優先されます。オプション 1) を使用している場合、プロジェクトおよびグローバル オプションは、共通設定構成要素が存在せず、RunSettingsOnly オプション (以下を参照) が false に変更されている場合にのみ使用されます。
オプション | 説明 |
---|---|
一般 | |
エディタカバレッジカラーリングモード | Off に設定するか、パフォーマンスの問題がある場合は DoNotUseRoslynWhenTextChanges に設定します。 |
Blazor のカバレッジ生成元のソース | true に設定すると、.razor ファイル内のカバレッジ行が、生成されたソース内のカバレッジ行に制限されます (使用可能な場合)。 |
ショーエディターの報道 | すべてのエディター カバレッジ インジケーターを無効にするには、false に設定します。 |
グリフマージンでカバレッジを表示 | false に設定すると、グリフのマージンにカバレッジ マークが表示されなくなります。 |
ShowCoveredInGlyphMargin | false に設定すると、グリフのマージンで覆われたマークが表示されなくなります。 |
ShowUncoveredInGlyphMargin | false に設定すると、グリフのマージンで覆われていないマークが表示されなくなります。 |
部分的に覆われたグリフマージンを表示 | false に設定すると、グリフのマージンでマークが部分的に覆われないようになります。 |
ShowDirtyInGlyphMargin | true に設定すると、グリフのマージンにダーティ マークが表示されます。 |
ShowNewInGlyphMargin | true に設定すると、グリフの余白に改行マークが表示されます。 |
概要マージンでカバレッジを表示 | false に設定すると、概要マージンにカバレッジ マークが表示されなくなります。 |
ShowCoveredIn概要マージン | false に設定すると、概要マージンで覆われたマークが表示されなくなります。 |
ShowUncoveredInOverviewマージン | 概要マージンで覆われていないマークを防ぐには、 false に設定します。 |
部分的に覆われた概要マージンを表示 | false に設定すると、概要マージンのマークが部分的に覆われないようにします。 |
ShowDirtyInOverviewマージン | true に設定すると、概要の余白にダーティ マークが表示されます。 |
ShowNewInOverviewマージン | true に設定すると、概要の余白に改行マークが表示されます。 |
表示ラインカバレッジハイライト表示 | カバレッジラインの強調表示を許可するには true に設定します。 |
ShowLineCoveredハイライト表示 | false に設定すると、覆われた行が強調表示されなくなります。 |
ShowLineUncoveredハイライト表示 | false に設定すると、覆われていない行が強調表示されなくなります。 |
ShowLinePartiallyCoveredハイライト表示 | 部分的に覆われた行の強調表示を防ぐには false に設定します。 |
ShowLineDirty強調表示 | true に設定すると、ダーティラインの強調表示が表示されます。 |
表示ライン新しいハイライト表示 | true に設定すると、改行が強調表示されます。 |
エンタープライズのフォントと色の使用 | FCC フォントとカラー項目を使用するには false に設定します。 |
表示ツールウィンドウツールバー | false に設定すると、ツール ウィンドウのツールバーが非表示になります。 Visual Studio を再起動する必要があります。ツールバーには、Cobertura XML とリスク ホットスポットを表示するためのボタンがあります。 |
FCC ソリューションの出力ディレクトリ名 | ソリューションのサブフォルダーに fcc 出力を表示するには、この名前を指定します |
ツールディレクトリ | ツールのサブフォルダーをコピーするフォルダー。すでに存在しているはずです。 VS の再起動が必要です。 |
サイクロマティック複雑性のしきい値 | 循環的複雑度がメソッドのこの値を超えると、そのメソッドはリスク ホットスポット タブに表示されます。 |
スティッキーカバレッジテーブル | カバレッジ テーブルにスティッキー ヘッドを持たせるには true に設定します。 |
名前空間クラス | false に設定すると、レポート内のタイプが短い形式で表示されます。グループ化に影響します。 |
名前空間の資格 | NamespacedClasses が true の場合、レポート内の型の修飾を制御します。 FullyQualified - 常に完全に適格です。 AlwaysUnqualified - 常に無条件です。 UnqualifiedByNamespace - 名前空間でグループ化する場合は修飾されません。 QualifiedByNamespaceLevel - 最初のグループ化レベル識別子の部分を省略します。独自性を維持しながらスペースを削減します。 |
完全に覆われたものを隠す | 完全にカバーされているクラス、名前空間、アセンブリを非表示にするには、true に設定します。 |
Hide0Coverage | true に設定すると、カバレッジが 0% のクラス、名前空間、アセンブリが非表示になります。 |
隠す0カバー可能 | false に設定すると、カバーできないクラス、名前空間、アセンブリが表示されます。 |
有効 | カバレッジ出力を有効にするかどうかを指定します |
無効補償範囲なし | カバレッジを無効にしない場合は、VS Option Enabled=false を false に設定します。 |
テストが失敗した場合に実行 | デフォルトでは、テストが失敗したときにカバレッジが実行されます。これを防ぐには false に設定します。 RunInParallel と組み合わせて使用することはできません |
テスト超過時に実行 | 実行中のテストの数に基づいてカバレッジのみを実行するには、値を指定します。 RunInParallel と組み合わせて使用することはできません |
RunMsCodeCoverage | 構成された実行設定でのみ収集するには、IfInRunSettings に変更します。実行設定の生成の場合ははい。 |
IncludeTestAssembly | テスト アセンブリのコード カバレッジをレポートするかどうかを指定します |
参照プロジェクトを含める | true に設定すると、直接参照されるすべてのプロジェクトがインクルードに追加されます。 |
アセンブリを含める | カバレッジに含めるアセンブリのリストを提供します。拡張子を除いた dll 名が照合に使用されます。 |
アセンブリの除外 | 対象から除外するアセンブリのリストを提供します。拡張子を除いた dll 名が照合に使用されます。 |
オープンカバー / カバーレット | |
隣接ビルド出力 | テストがパスに依存している場合は、これを true に設定します。 |
除外する | 特定のモジュールとタイプ (複数の値) を除外するフィルター式 |
含む | 式をフィルターして特定のモジュールとタイプ (複数の値) を含めます |
ファイルによる除外 | OpenCover は * ワイルドカード マッチングを使用します。 Coverlet はファイル システム グロビングを使用します |
属性による除外 | アセンブリ、型、およびメソッド レベルで属性付きコードを除外します。完全修飾または非修飾の属性タイプを追加します。 |
並列実行 | デフォルトでは、OpenCover / Coverlet テストが実行され、その後カバレッジが実行されます。カバレッジをすぐに実行するには true に設定します |
Msコードカバレッジ | 以下のそれぞれは、runsettings 要素に変換される正規表現の配列です。を参照してください。 |
モジュールパス除外 | 除外 - アセンブリ名またはファイル パスで指定されたアセンブリと一致します。 |
モジュールパスを含む | Include - アセンブリ名またはファイル パスで指定されたアセンブリと一致します。 |
会社名を除く | 除外 - Company 属性によってアセンブリを照合します。 |
会社名に含まれるもの | Include - Company 属性によってアセンブリを照合します。 |
PublicKeyToken の除外 | 除外 - 公開キー トークンによって署名されたアセンブリを照合します。 |
PublicKeyToken には以下が含まれます | Include - 公開キー トークンによって署名されたアセンブリを照合します。 |
ソース除外 | 除外 - 要素が定義されているソース ファイルのパス名で要素を照合します。 |
ソースに含まれるもの | Include - 要素が定義されているソース ファイルのパス名で要素を照合します。 |
属性除外 | 除外 - 指定された属性を持つ要素と一致します。属性の完全名を指定します |
属性Include | Include - 指定された属性を持つ要素と一致します。属性の完全名を指定します |
関数除外 | 除外 - プロシージャ、関数、またはメソッドを、パラメータ リストを含む完全修飾名で照合します。 |
関数には以下が含まれます | Include - パラメータ リストを含む完全修飾名によってプロシージャ、関数、またはメソッドを照合します。 |
ベッドカバー | |
実行設定のみ | runsettings で指定されていない場合、カバーレット データ コレクター構成要素に使用されるグローバル オプションとプロジェクト オプションに false を指定します。 |
CoverletCollectorディレクトリパス | FCC バージョンが提供しない機能が必要な場合は、カバーレット コレクター ファイルを含むディレクトリへのパスを指定します。 |
Coverletコンソールローカル | Coverlet Console のローカル インストールされた独自の dotnet ツールを使用するには、true を指定します。 |
CoverletConsoleカスタムパス | FCC バージョンが提供しない機能が必要な場合は、coverlet console exe へのパスを指定します。 |
Coverletコンソールグローバル | Coverlet Console の独自の dotnet ツール グローバル インストールを使用するには、true を指定します。 |
「CoverletConsole」設定はローカル/カスタムパス/グローバルより優先されます。 | |
オープンカバー | |
オープンカバー登録 | path32 または path64 の FCC 判定が正しくない場合は、デフォルトから変更します。 |
オープンカバーターゲット | 必要に応じて独自のターゲットを指定します。 |
OpenCoverTargetArgs | 独自のターゲットを指定する場合は、追加の引数を指定することもできます。 FCC はテスト DLL パスを提供します。 |
オープンカバーカスタムパス | FCC バージョンが提供していない機能が必要な場合は、カバー exe を開くパスを指定します。 |
NPath の複雑さのしきい値 | npath の複雑さがメソッドのこの値を超えると、そのメソッドは [リスク ホットスポット] タブに表示されます。 |
クラップスコアのしきい値 | クラップスコアがメソッドのこの値を超えると、そのメソッドはリスクホットスポットタブに表示されます。 |
おそらく、IncludeReferencedProjects を true に設定するとよいでしょう。これにより、テスト フレームワークはカバーされず、コードのみがカバーされるようになります。
Coverlet と OpenCover はフィルター式を使用します。フィルター式
ワイルドカード
* => は 0 個以上の文字と一致します。
[*]* => すべてのアセンブリのすべての型。
[coverlet.*]Coverlet.Core.Coverage => coverlet.* に一致するアセンブリに属する Coverlet.Core 名前空間の Coverage クラス (例: coverlet.core)
[*]Coverlet.Core.Instrumentation.* => アセンブリ内の Coverlet.Core.Instrumentation 名前空間に属するすべての型
[coverlet.*.tests]* => coverlet で始まるアセンブリ内のすべての型。 .tests で終わる
「除外」オプションと「含める」オプションは両方とも一緒に使用できますが、「除外」が優先されます。
MS コード カバレッジは正規表現を使用します。アセンブリまたは特定の型およびメンバーをコード カバレッジ分析に含めたり、除外したりできます。 Include セクションが空であるか省略されている場合、ロードされ、関連付けられた PDB ファイルを持つすべてのアセンブリが含まれます。アセンブリまたはメンバーが除外セクションの句に一致する場合、そのアセンブリまたはメンバーはコード カバレッジから除外されます。 Exclude セクションは Include セクションよりも優先されます。アセンブリが Include と Exclude の両方にリストされている場合、そのアセンブリはコード カバレッジには含まれません。
System.Diagnostics.CodeAnaracy 名前空間に存在する [ExcludeFromCodeCoverage] 属性を適用すると、コード カバレッジからメソッドまたはクラス全体を無視できます。
.Net (.Net Framework ではない) の場合、この属性はアセンブリ レベルで適用できます。
.Net Framework の同様の機能については、上記の FCCExcludeFromCodeCoverage を参照してください。
異なるタイプのコードを無視するには:
また、「ExcludeByAttribute」リストに追加することで追加の属性を無視することもできます。Coverlet/OpenCover の場合は、「ExcludeByAttribute」リスト (完全修飾または非修飾) に追加します。 ms コード カバレッジの場合は、「AttributesExclude」リストに追加します。これには正規表現一致が使用されます。
FCC 出力は、デフォルトで各テスト プロジェクトの Debug フォルダー内にあります。必要に応じて、内部的に出力され FCC によって使用されるファイルを含むフォルダーを指定できます。以下の両方のメソッドは、最初のテスト プロジェクト ファイルを含むディレクトリの上位ディレクトリで .sln ファイルを含むディレクトリを検索します。そのようなソリューション ディレクトリが見つかった場合、ロジックが適用されます。
ソリューション ディレクトリにサブディレクトリ fcc-output がある場合は、それが自動的に使用されます。
あるいは、オプションで FCCSolutionOutputDirectoryName を指定すると、必要に応じてディレクトリが作成され、使用されます。
このプロジェクトに貢献したい場合は、貢献ガイドラインを確認してください。
このプロジェクトを自分で複製してビルドするには、このプロジェクトで使用されるいくつかの機能を有効にする Visual Studio の Extensibility Essentials 拡張機能を必ずインストールしてください。
アパッチ2.0
ベッドカバー
オープンカバー
レポートジェネレーター
プロバイダー | タイプ | リンク |
---|---|---|
ペイパル | 一度 | |
リベラペイ | 繰り返し発生する |