dotCover 2025.3 ヘルプ

コマンドラインツールによるカバレッジ分析

dotCover コマンドラインツールを使用すると、次のことが可能になります。

  • 任意のテストランナー(MSTest、NUnit、xUnit、MSpec など)を使用してカバレッジ分析を実行し、実行されたテストのカバレッジをカバレッジスナップショットに記録します。

  • カバレッジスナップショットをマージコマンドでマージします。たとえば、異なるテストフレームワークを使用するユニットテストのスナップショットを結合します。

  • report コマンドを使用して、さまざまな形式でカバレッジレポートを生成します。

  • その他多数

サポートする OS

このツールは、Windows (x86、x64、arm64)、Linux (x64、arm32、arm64、musl-x64、musl-arm64)、macOS (x64、arm64) 上の .NET コマンドラインツールとして使用できます。

ディストリビューション形式

このツールは、クロスプラットフォームのフレームワークに依存する .NET ツールとして配布されます (.NET がインストールされている必要があります)。NuGet パッケージを見る (英語)

dotCover コマンドラインツールをインストールする

dotCover コマンドラインツールをインストールする主な方法は、.NET ツールとしてインストールすることです。ローカルコンピューターまたは CI/CD サーバー上でカバレッジ分析を実行する場合は、.NET ツールとしてインストールすることをお勧めします。

コンピューター上のすべてのプロジェクトのグローバルツールとして dotCover をインストールする

  • 実行:

    dotnet tool install --global JetBrains.dotCover.CommandLineTools

特定のプロジェクト / ディレクトリのローカルツールとして dotCover をインストールする

  • 実行:

    dotnet tool install JetBrains.dotCover.CommandLineTools --tool-path "some/path"

インストール後、dotCover コマンドを使用して、任意のディレクトリ(グローバルにインストールした場合)またはインストールしたディレクトリ(ローカルにインストールした場合)からコマンドラインツールを実行できます。例:

dotCover help

dotCover コマンドラインツールを構成する

dotCover コマンドラインツールを構成するには、コマンドラインパラメーターまたはプレーンテキスト応答ファイルを使用できます。

例:

dotCover cover --xml-report-output AppCoverageReport.xml -- test "C:\MyProject\MainTests.csproj"
  • すべての OS で同じパラメーター構文を使用できます。

  • パラメーターはケバブケースで記述する必要があります。例: --target-executable

  • パラメーター名と値はスペースで区切ります(例: --target-executable MyApp.exe

  • スペースを含むパスをエスケープするには、二重引用符とバックスラッシュを追加します(例: ... --target-arguments "\"D:\My Projects\My Application\bin\Debug\AppTests.dll"\")。

  • 相対パスは作業ディレクトリから解決されます。

  • 出力パラメーターが指定されていない場合、ツールはデフォルトでカバレッジスナップショット(.dcvr)を生成します。レポートを取得するには、--json-report-output または --xml-report-output を使用します。両方を取得するには、--snapshot-output とレポート出力オプションを指定します。

  • 応答ファイルを使用して複雑なパラメーターセットを簡素化します(例: dotCover cover @args.txt

  • パラメーターの完全なリストについては、「コマンドリファレンス」を参照してください。

.NET プロジェクトの単体テストカバレッジを分析する

  1. ソリューションフォルダーを開きます。

  2. ソリューションを構築します。

    dotnet build
  3. カバレッジ分析を使用してテストを実行し、カバレッジスナップショットを取得します。

    dotCover cover --snapshot-output snapshot.dcvr -- test --no-build

    スナップショットの代わりに、またはスナップショットに加えてレポートを取得するには、--json-report-output または --xml-report-output パラメーターを追加します。

    dotCover cover --xml-report-output report.xml -- test

    応答ファイルを使用して dotCover を構成した場合は、ファイルへのパスを指定します。

    dotCover cover @"~/config/config.txt"

.NET フレームワークプロジェクトの単体テストカバレッジを分析する

  1. ユニットテストプロジェクトがビルドされていることを確認してください。

  2. カバレッジ分析を使用してテストを実行し、カバレッジスナップショットを取得します。例: NUnit の場合:

    dotCover cover --target-executable "D:\Program Files\NUnit 2.6\bin\nunit-console.exe" --target-arguments "D:\Projects\TheApplication\bin\Debug\AppTests.dll" --snapshot-output snapshot.dcvr

    ここに:

    • --target-executable – テストランナーへのパス

    • --target-arguments – ランナー(コンパイルされたユニットテストアセンブリ)に渡される引数。これらの引数にスペースを含むパスが含まれている場合は、二重引用符とバックスラッシュを追加してエスケープする必要があります(例: ... --target-arguments "\"D:\My Projects\My Application\bin\Debug\AppTests.dll"\")。

    スナップショットの代わりに、またはスナップショットに加えてレポートを取得するには、--json-report-output または --xml-report-output パラメーターを追加します。

    dotCover cover --target-executable "D:\Program Files\NUnit 2.6\bin\nunit-console.exe" --target-arguments "D:\Projects\TheApplication\bin\Debug\AppTests.dll" --xml-report-output report.xml

    応答ファイルを使用して dotCover を構成した場合は、ファイルへのパスを指定します。

    dotCover cover @"D:\Config\config.txt"

カバレッジフィルターを適用する

フィルターを使用して、特定のアセンブリ、属性がマークされたコード、外部プロセスをカバレッジ分析から除外できます。フィルターはノイズを削減し、必要なコードに結果を集中させるのに役立ちます。

  • --exclude-assemblies <list> – 除外するアセンブリ名のコンマ区切りリスト。ワイルドカード(*)を使用できます。例:

    dotCover cover --exclude-assemblies MyTests,*Helpers
  • --exclude-attributes <list> – 完全修飾属性名のコンマ区切りリスト。これらの属性でマークされたコードは除外されます。ワイルドカード(*)を使用できます。例:

    dotCover cover --exclude-attributes System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute
  • --exclude-processes <list> – カバレッジ分析から除外するプロセス名のコンマ区切りリスト。ワイルドカード(*)を使用できます。例:

    dotCover cover --exclude-processes vstest.discovery.engine
  • コマンドライン引数で指定されたフィルターとレスポンスファイルで定義されたフィルターを組み合わせることができます。dotCover は、すべてのソースからのすべてのリスト値をマージします。例:

    dotCover cover --exclude-assemblies "*.Tests" @filters.txt

    この例では、filters.txt には次の内容が含まれる可能性があります。

    --exclude-assemblies ThirdPartyLib --exclude-attributes System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute

複数のテストプロジェクトの範囲を分析する

ソリューションに複数のテストプロジェクトが含まれている場合、それらすべてのコードカバレッジを収集し、単一の統合レポートを生成することをお勧めします。推奨されるアプローチは、すべてのプロジェクトで同じユニットテストフレームワークを使用しているかどうかによって異なります。

プロジェクトは同じテストフレームワークを使用する

ソリューション内のすべてのテストプロジェクトで同じユニットテストフレームワークを使用している場合、単一のカバレッジセッションでまとめて実行できます。この方法は、すべてのプロジェクトを単一の dotnet test 呼び出しで実行できる場合にのみ適用できます。SDK 形式のプロジェクトファイルを使用する MSTest、xUnit、NUnit プロジェクトで機能します。

  1. ソリューションを構築します。

    dotnet build
  2. カバレッジ付きのすべてのテストを実行し、スナップショットを保存します。

    dotCover cover --snapshot-output snapshot.dcvr -- test --no-build
  3. スナップショットの代わりに、またはスナップショットに加えてレポートを生成するには、レポート出力パラメーターを使用します。

    dotCover cover --xml-report-output report.xml -- test --no-build

プロジェクトごとに異なるテストフレームワークを使用する

ソリューションに、異なる単体テストフレームワーク (MSTest や NUnit など) を使用するテストプロジェクトが含まれている場合は、プロジェクトごとにカバレッジを個別に実行し、結果のカバレッジスナップショットを 1 つのレポートにマージする必要があります。

dotCover: Merging coverage snapshot into a single report
  1. 各テストプロジェクトごとにレスポンスファイルを作成します。これらのファイルは、各テストの実行方法とスナップショットの保存場所を定義します。

    args1.txt から TestProject1 (MSTest) へ:

    --target-executable "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\MSTest.exe" --target-arguments "TestProject1.dll" --target-working-directory "D:\Projects\MyApp\bin\Debug" --snapshot-output Snapshot1.dcvr

    TestProject2args2.txt (NUnit):

    --target-executable "C:\Tools\NUnit\nunit3-console.exe" --target-arguments "TestProject2.dll" --target-working-directory "D:\Projects\MyApp\bin\Debug" --snapshot-output Snapshot2.dcvr
  2. 各プロジェクトのカバレッジを実行します。

    dotCover cover @args1.txt dotCover cover @args2.txt

    これにより、Snapshot1.dcvrSnapshot2.dcvr という 2 つのスナップショットファイルが生成されます。

  3. スナップショットを 1 つに結合します。

    dotCover merge --snapshot-source Snapshot1.dcvr,Snapshot2.dcvr --snapshot-output MergedSnapshots.dcvr
  4. マージされたスナップショットからカバレッジレポートを生成します。

    dotCover report --snapshot-source MergedSnapshots.dcvr --xml-report-output CoverageReport.xml

シンボルファイルを検索する (PDB)

対象バイナリのシンボルファイル(PDB)を見つけることは、カバレッジを計算するために不可欠です。単体テストスタートアッププロジェクトをカバーする場合、dotCover は現在のソリューションの構造を使用してシンボルファイルを簡単に見つけます。

デフォルトでは、次の場所にあるシンボルファイルを検索します。

  • バイナリファイルが存在するディレクトリと同じディレクトリ

  • バイナリファイル内で指定されたデバッグディレクトリ

  • _NT_SYMBOL_PATH 環境変数およびレジストリで指定されたすべてのディレクトリ内。

2025 年 7 月 31 日