この記事では、コード カバレッジ機能に関連するすべての Microsoft.Testing.Platform 拡張機能の一覧を示し、説明します。
コード カバレッジ機能を使用すると、単体テストなどのコード化されたテストによってテストされているプロジェクトのコードの割合を調べることができます。 バグから効果的に保護するには、コードの大部分をカバーするようにテストを実行する必要があります。
Microsoft コード カバレッジ
Microsoft コード カバレッジ分析は、マネージド (CLR) コード とアンマネージド (ネイティブ) コードの両方で実行できます。 静的と動的の両方のインストルメンテーションがサポートされています。 この拡張機能は、Microsoft.Testing.Extensions.CodeCoverage NuGet パッケージの一部として提供されています。
注
拡張機能では、アンマネージ (ネイティブ) コード カバレッジが既定で無効になっています。 必要に応じて、EnableStaticNativeInstrumentation および EnableDynamicNativeInstrumentation フラグを使用して有効にしてください。
アンマネージド コード カバレッジの詳細については、「静的および動的ネイティブ インストルメンテーション」を参照してください。
重要
このパッケージは、Microsoft .NET ライブラリのクローズドソースで無料使用可能なライセンシングモデルを備えています。
Microsoft コード カバレッジの詳細については、GitHub のページを参照してください。
Microsoft Code Coverage には、以下のオプションがあります。
| 選択肢 | 説明 |
|---|---|
--coverage |
dotnet-coverage ツールを使用してコード カバレッジを収集します。 |
--coverage-output |
生成されたカバレッジ ファイルの名前またはパス。 既定では、ファイルは TestResults/<guid>.coverageです。 |
--coverage-output-format |
出力ファイル形式。 サポートされている値: coverage、xml、cobertura。 既定値は 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.collector NuGet パッケージは VSTest 専用に設計されており、Microsoft.Testing.Platformでは使用できません。
現在、Coverlet の拡張機能はありませんが、Coverlet .NET グローバル ツールを使用できます。
Coverlet グローバル ツールを既にインストールしてある場合は、次のコマンドを実行できます。
coverlet .\bin\Debug\net8.0\TestProject2.dll --target "dotnet" --targetargs "test .\bin\Debug\net8.0\TestProject2.dll --no-build"
.NET