dotCover 2024.1 ヘルプ

入門

JetBrains dotCover は、.NET ユニットテストランナーおよびコードカバレッジツールです。dotCover を使用すると、.NET アプリケーションコードの実際にテストされている量を分析できます。ユニットテスト中またはアプリケーションを手動で実行するときにメソッド呼び出しを測定することにより、dotCover は、どのステートメントがカバーされ、どのステートメントがカバーされなかったかを示します。

dotCover は Visual Studio 2010, 2012, 2013, 2015, 2017, 2019,, 2022 に統合されます。他の dotUltimate ツールを使用して、または使用せずに dotCover をインストールし、Visual Studio を開くと、メインメニューの ReSharper | ユニットテストおよび ReSharper | カバーに dotCover コマンドが表示されます。これらのメニューから、dotCover で使用できるさまざまなコマンドを実行できます。

ユニットテストとコードカバレッジ

dotCover を使用する最も基本的なシナリオは、単体テストを実行するときに実際に実行されるコードの量を測定することです。ベースライン条件は次のとおりです。Visual Studio でソリューションを開いており、ソリューション内のコードはいくつかの単体テストでカバーされています。タスクは、コードのどの程度がカバーされているかを理解することです。

ソリューションの単体テストのカバレッジを分析する

  1. メインメニューから ReSharper | ユニットテスト | ユニットテストを選択します。これにより、ユニットテストエクスプローラーツールウィンドウが開きます。ここでは、ソリューション内にいくつのテストがあるかを見ることができます。

    dotCover: Unit test explorer
  2. ユニットテストエクスプローラーウィンドウで、カバレッジを分析するテストプロジェクトまたはテストを選択します。カバレッジフィルターを使用して、カバレッジスコープを制限できることに注意してください。

  3. これにより通常の単体テストセッションが実行されますが、dotCover はバックグラウンドでカバレッジデータを収集します。dotCover は、新しく開いた単体テストセッションウィンドウにリアルタイムでテスト結果を表示します。カバレッジ結果 (テストがコード内の特定のクラスとメソッドをどのようにカバーするか) は、ユニットテストカバレッジツールウィンドウに表示されます。

    dotCover: Unit test session coverage
  4. 特定のクラスまたはメソッドを正確にカバーするテストを表示するには、ユニットテストカバレッジウィンドウでそれを選択し、コンテキストメニューでカバーテストを表示するを選択します。

    dotCover: Covering tests
  5. ユニットテストカバレッジウィンドウでハイライトコード Highlight code をクリックして、コードカバレッジを視覚化します。

    dotCover: Default coverage highlighting

    デフォルトでは、カバレッジとテスト結果はエディターのガターにマーカーで表示されます。マーカーは、現在のステートメントに関連するテストが失敗している場合は赤、すべてのテストに合格している場合は緑、このステートメントをカバーするテストがない場合は灰色です。

  6. ユニットテストカバレッジウィンドウには、もう 1 つの非常に便利なメトリックが含まれています。ホットスポット Hot Spots をクリックすると、潜在的にリスクのあるクラスの「クラウド」が表示されます。これは、サイクロマティック複雑度が高いが、テストで十分にカバーされていないクラスです。

    dotCover: Hot spot coverage view

アプリケーションの範囲

dotCover を使用すると、特定のユースケースシナリオのコードカバレッジを計算できます。Control+Alt+K P を押すか、メニュー dotCover コントロール下でソリューションのスタートアッププロジェクトを開始から ReSharper | カバー | カバースタートアッププロジェクトを選択します。あるいは、Control+Alt+K K または ReSharper | カバー | カバーアプリケーション…使用すると、のコードカバレッジを計算するアプリケーションを指定できます。

dotCover: Coverage Configuration dialog

次に、アプリケーションを実行し、ユースケースのシナリオを実行し、完了したらスナップショットを取得するために dotCover に伝えます。テストされたアプリケーションが dotCover コントロールで動作する限り、スナップショットを取得するをクリックしてテストされたアプリケーションで作業したときにどのコード行がカバーされているかを確認できるコントローラーダイアログが表示されます。

dotCover controller dialog

カバレッジ結果のフィルタリング

コードカバレッジの結果は、インフラストラクチャコードや調査に興味のないプロジェクトで混乱する可能性があります。特定のノードを右クリックしてカバレッジフィルターを除外して作成するを選択することで除外できます。

Excluding nodes from dotCover coverage results

アイテムを除外し、対応するランタイムカバレッジフィルターを作成すると、dotCover が次にカバレッジ分析を実行するときにアイテムをカバーしないように指示されます。

カバレッジフィルターは、フィルター dotCover 設定(Control+Alt+K F、または ReSharper | カバー | カバレッジフィルターの編集…)を介して管理することもできます。フィルターは、開いたソリューションまたはアクティブなソリューションのスコープを設定したソリューションに対して定義できます。

dotCover helps filtering coverage results

これらの基本をマスターしたら、キーボードショートカットを習得したり、dotCover のコマンドラインバージョンの操作方法を確認したりできます。

関連ページ:

カバレッジフィルターを設定する

場合によっては、カバレッジ分析の範囲を制限する必要があります。例: 複数のプロジェクトと何千ものテストを含む大スコープなアプリケーションの開発に参加する場合、これは理にかなっています。この場合、ソリューション内のすべてのプロジェクト (型、型メンバー) のカバレッジを分析する必要はなく、作業中のコードに関連するものだけを分析する必要があります。もう 1 つの例は、現在関心のないノード (名前空間、クラス、メソッド) を除外して、カバレッジツリーの「ノイズを減らす」ことです。このような場合は常に、...

ユニットテストカバレッジ

このウィンドウでは、単体テストカバレッジの実行中に取得されたカバレッジデータを探索できます。各スナップショットは 2 つのビューで表示でき、ツールバーの右側にあるボタンで切り替えることができます。カバレッジツリー:このビューでは、すべてのコード項目がツリー構造でグループ化され、各コード項目のカバレッジを調べることができます。カバレッジ列では、dotCover は 3 つの色を使用してカバレッジステータスを表示します。緑 — ノード内のカバーされたステートメントのパーセンテージ。赤 — ノード内のカ...

スタートアッププロジェクトのカバレッジ分析を開始

dotCover を使用すると、Visual Studio ソリューションのスタートアッププロジェクトをその管理下で実行できます。すべての実行可能な .NET プロジェクトタイプがサポートされています。1 回のキーストロークで、dotCover はソリューションを再構築し、カバレッジランを開始します。dotCover Control でスタートアッププロジェクトを実行するを押すか、メインメニューからを選択します。または、を押して、ポップアップにコマンド名を入力し、そこで選択することもできます。...

継続的なテストを使用する

連続テストの概念は、コードを変更するとすぐに実際のテスト結果がすぐに得られることを意味します。プロジェクトを手動で再構築し、変更後にすべてのテストを再実行する必要はありません: 影響を受けるテストはバックグラウンドで自動的に実行されます(テストセッションは、変更の保存やプロジェクトのビルドなどの明示的なアクションによってトリガーされます)。ソリューションで継続的なテストを可能にするメインメニューからを選択し、左側のを選択します。いつテストを再実行する必要があるかを指定します: ソリューションの保...