次の方法で共有


コード カバレッジ

ヒント

Microsoft.Testing.Platform.MSBuild (MSTest、NUnit、xUnit ランナーによって推移的に含まれる) を使用する場合、コード カバレッジ拡張機能は NuGet パッケージをインストールするときに自動的に登録されます。コードの変更は必要ありません。

コード カバレッジ機能を使用すると、単体テストなどのコード化されたテストによってテストされているプロジェクトのコードの割合を調べることができます。 バグから効果的に保護するには、コードの大部分をカバーするようにテストを実行する必要があります。

Microsoft コード カバレッジ

Microsoft コード カバレッジ分析は、マネージド (CLR) コード とアンマネージド (ネイティブ) コードの両方で実行できます。 静的と動的の両方のインストルメンテーションがサポートされています。 この拡張機能には、 Microsoft.Testing.Extensions.CodeCoverage NuGet パッケージが必要です。

拡張機能では、アンマネージ (ネイティブ) コード カバレッジが既定で無効になっています。 必要に応じて、EnableStaticNativeInstrumentation および EnableDynamicNativeInstrumentation フラグを使用して有効にしてください。 アンマネージド コード カバレッジの詳細については、「静的および動的ネイティブ インストルメンテーション」を参照してください。

Important

このパッケージは、Microsoft .NET ライブラリのクローズドソースで無料使用可能なライセンシングモデルを備えています。

Microsoft コード カバレッジの詳細については、GitHub のページを参照してください。

オプション

Option [説明]
--coverage dotnet-coverage ツールを使用してコード カバレッジを収集します。
--coverage-output 生成されたカバレッジ ファイルの名前またはパス。 既定では、ファイルは TestResults/<guid>.coverageです。
--coverage-output-format 出力ファイル形式。 サポートされている値: coveragexmlcobertura。 既定値は coverage です。
--coverage-settings XML コード カバレッジの設定

使用可能なオプションの詳細については、設定サンプルを参照してください。

Microsoft.Testing.Extensions.CodeCoverage の IncludeTestAssembly の既定値は falseされていますが、VSTest では true 。 つまり、テスト プロジェクトは既定で除外されます。 詳細については、「 コード カバレッジの構成」を参照してください。

バージョン互換性

次の表は、さまざまなバージョンの Microsoft.Testing.Extensions.CodeCoverage と Microsoft.Testing.Platform の間の互換性を示しています。

Microsoft.Testing.Extensions.CodeCoverage Microsoft.Testing.Platform
18.1.x 2.0.x
18.0.x 1.8.x
17.14.x 1.6.2

互換性と最新の機能を最大限に活用するには、両方のパッケージの最新バージョンを一緒に使用することをお勧めします。

掛け布団

Coverlet Microsoft Testing Platform Integration (coverlet.MTP) は、 coverlet.collector 機能を実装する Microsoft.Testing.Platform のネイティブ拡張機能です。

coverlet.MTP NuGet パッケージをテスト プロジェクトに追加します。

dotnet add package coverlet.MTP

コード カバレッジを収集するには、 --coverlet フラグを使用してテストを実行します。

dotnet test --coverlet

または、 --coverlet フラグを使用してテスト実行可能ファイルを実行します。

dotnet exec <test-assembly.dll> --coverlet

テストの実行後、結果を含む coverage.json ファイルが現在のディレクトリに生成されます。

オプション

Option [説明]
--coverlet コード カバレッジ データ収集を有効にします。
--coverlet-output-format <format> カバレッジ レポートの出力形式。 サポートされている形式: jsonlcovopencovercobertura、および teamcity。 複数の形式を含めるには、複数回指定します。
--coverlet-include <filter> [Assembly]Typeなど、フィルターに一致するアセンブリを含めます。 フィルターを追加するには、複数回指定します。
--coverlet-include-directory <path> ソース ファイル用の追加のディレクトリを含めます。 ディレクトリを追加するには、複数回指定します。
--coverlet-exclude <filter> [Assembly]Typeなど、フィルターに一致するアセンブリを除外します。 フィルターを追加するには、複数回指定します。
--coverlet-exclude-by-file <pattern> glob パターンに一致するソース ファイルを除外します。 パターンを追加するには、複数回指定します。
--coverlet-exclude-by-attribute <attribute> 特定の属性で修飾されたメソッドまたはクラスを除外します。 属性を追加するには、複数回指定します。
--coverlet-include-test-assembly カバレッジ レポートにはテスト アセンブリも含めます。
--coverlet-single-hit コード内の場所ごとにヒット数を 1 に制限します。
--coverlet-skip-auto-props カバレッジで自動実装プロパティをスキップします。
--coverlet-does-not-return-attribute <attribute> メソッドを返さないとマークする属性。 属性を追加するには、複数回指定します。
--coverlet-exclude-assemblies-without-sources <value> ソース コードを使用せずにアセンブリを除外します。 値: MissingAllMissingAny、および None

詳細情報については、coverlet.MTP のドキュメントを参照してください。