dotCover 2020.3 ヘルプ

入門

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

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

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

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

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

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

    dotCover: Unit test explorer

  2. ユニットテストエクスプローラーウィンドウで、カバレッジを分析するテストを選択します。すべてのテストを分析する場合は、ツリーの最上位ノードを選択します。カバレッジフィルターを使用して、カバレッジスコープを制限できることに注意してください。

  3. カバーユニットテスト Cover Unit Tests Control+T H をクリックします。これにより、通常の単体テストセッションが実行されますが、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 が次にカバレッジ分析を実行するときにアイテムをカバーしないように指示されます。

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

dotCover helps filtering coverage results

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

関連ページ:

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

場合によっては、カバレッジ分析の範囲を制限する必要があります。例: 複数のプロジェクトと何千ものテストを含む大スコープアプリケーションの開発に参加している場合、これは意味があります。この場合、ソリューション内のすべてのプロジェクト(タイプ、タイプメンバー)の対象範囲を分析する必要はありませんが、特定の機能に関連するものだけを分析する必要があります。もう一つの例は、現在興味を持っていないノード(名前空間、クラス、メソッド)を除外することによって、カバレッジツリーの「ノイズ」を減らすことです。主なフ...

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

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

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

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