dotCover 2024.3 ヘルプ

継続的なテスト

継続的テストは、テスト駆動開発(英語)プラクティスに従うのに役立つ強力な機能です。ユニットテストに影響する変更を検出し、影響を受けるすべてのプロジェクトを再構築し、すべての新しいテストと影響を受けるテストを再実行します。すべてがバックグラウンドで自動的に実行されます。

連続テストを使用可能にする

ソリューションには、一度に 1 つの継続的テストセッションのみを作成できます。既存のユニットテストセッションから継続的テストセッションを作成できます。以前の継続的テストセッションは、新しいセッションに置き換えられます。

継続的テストを有効にするには、単体テストセッションウィンドウを開き、テストを選択して、継続的テストアイコン Create continuous testing session をクリックします。

dotCover: Selecting continuous testing mode

これにより、新しい継続的なテストセッションが作成されます。

影響を受けるテスト

継続的テストでは、「影響を受けるテスト」という概念を使用して、現在実行結果が不明なテストを定義します。実行されたことがない、キャンセルされた、完了していないすべてのテストがこのカテゴリに分類されます。

明確な結果 (合格または不合格) で終了したテストは関連性があります (影響を受けません) が、コードに変更を加えるまでのみです。変更後に影響を受けるテストがなくなるようにするには、影響を受けるテストまたはソリューション内のすべてのテストを再実行する必要があります。

継続的テストが有効になっている場合、dotCover はすべてのユニットテストのカバレッジを計算し、カバーされたコードの変更を監視して、変更がテストに影響するかどうかを検出します。テストが影響を受ける場合、dotCover はアイコン icon_dirty_test.png に疑問符を追加し、エディターのステータスインジケーターも変更します。

dotCover: Outdated tests notification

コードカバレッジを視覚化して、コード内のどのステートメントが単体テストでカバーされているかを確認し、コードからカバーテストに移動できます。

ツールバーのカバレッジ結果を削除 Drop coverage results をクリックすると、いつでもテスト実行結果に関する情報をクリアできます。

継続的テストモード

連続テストモードを選択するということは、2 つの質問に答えることを意味します。

1. テスト実行をトリガーするものは何ですか ?

メインメニュー ReSharper | オプション… | dotCover | 継続的なテストを使用して、ReSharper オプションで優先トリガーを選択できます。

Continuous testing settings

利用可能なオプションは 3 つあります。

  • ビルド : ソリューションを構築するたびにテストが開始されます。

  • 保存 : ソリューションを保存するたびにテストが開始されます。この場合、dotCover は関連するプロジェクトを独自に構築する必要があります。ビルド時間とカバレッジデータの関連性のバランスを見つけるのに役立つように、dotCover には 3 つのビルドオプションがあります。

    • 継続的テストセッションに関連するプロジェクトのみ : dotCover は、単体テストプロジェクトと、これらの単体テストプロジェクトによって参照されるプロジェクトのみをビルドします。

    • 継続的テストセッションに関連するプロジェクトおよびカバレッジ分析に含まれるプロジェクト : dotCover は、継続的テストセッションに関連するプロジェクトのみカテゴリに分類されるプロジェクトと、カバレッジ分析から除外されていないコードを含むプロジェクトを構築します。

    • ソリューション内のすべてのプロジェクト : dotCover は常にソリューション全体を構築します。

  • ショートカット : テストはショートカット (デフォルトでは未割り当て) を適用した後に開始されます。

2. どのようなテストがどのように実行されますか?

メインメニュー ReSharper | オプション… | dotCover | 継続的なテストを使用して、ReSharper オプションで優先モードを選択できます。モードは継続テストモードで使用できます。

  • すべてのテストを実行 : dotCover はカバレッジ分析なしですべてのテストを実行します。

  • 新規および影響を受けるテストをカバーする : dotCover は、カバレッジ分析を有効にして、新しいテストと影響を受けるテストを実行します。これは最もリソースを消費しますが、最も信頼性の高いモードです。dotCover は常にカバレッジ情報を最新の状態に保ちます。

  • 新しいテストと影響を受けるテストを実行する : dotCover は、カバレッジ分析を行わずに、新しいテストと影響を受けるテストのみを実行します。これは、最もリソースを節約するモードです。

    カバレッジ情報なしでテストをカバーするを選択すると、dotCover はカバレッジ情報がないテストのカバレッジを分析します。特定のテストのカバレッジ情報が存在する場合 (古い情報であっても)、dotCover はカバレッジ分析なしでこのテストを実行します。リソース消費とカバレッジデータの関連性の間の妥協点として、このモードを使用することをお勧めします。

カバレッジデータの関連性

すべてのテストを実行および新しいテストと影響を受けるテストを実行するモードは、継続的テストのパフォーマンスへの影響を軽減するために特別に作成されました。デフォルトでは、これらのモードのいずれかを選択すると、dotCover は新しいカバレッジ情報を収集しません。関連するカバレッジ情報がすでにある場合にのみ、これらをオンにすることをお勧めします。テストでカバーされるコードを変更すると、ユニットテストカバレッジウィンドウに、一部のテストのカバレッジ情報が古くなっていることが明示的に示されます。

dotCover: Outdated coverage info

カバレッジのハイライトでは、淡い色を使用して、古いカバレッジ情報に基づいていることをハイライトします。

dotCover: Outdated coverage highlighting

ただし、カバレッジ情報がまだ関連していることが確実な場合は、これらのモードを使用して、情報が完全に古くなるまでカバレッジを延期することができます。

推奨パフォーマンスへの影響とカバレッジデータの関連性の間の最適な妥協点は、カバレッジ情報なしでテストをカバーするオプションを使用した新しいテストと影響を受けるテストを実行するモードです。このモードでは、古いカバレッジ情報を使用してテストを実行し、カバレッジ情報がないテストのカバレッジを分析します。

連続テストの範囲

単体テストセッションウィンドウ内のどのセッションも連続テストモードに切り替えることができます。持っている単体テストセッションの数だけ、連続したテストスコープを持つことができます。

実行中の継続的なテスト

継続的テストを有効にした後、カバレッジ分析を使用してユニットテストを実行し、初期カバレッジデータを取得する必要があります (たとえば、これにはすべてのテストをカバーアクションを使用します)。すべてのテストが緑色であることを確認したら、ユニットテストセッションウィンドウを閉じて、プロジェクトの作業を続行できます。メインの Visual Studio ウィンドウのステータスバーで、現在のテストステータスを確認できます。

Continuous testing status on Visual Studio toolbar

変更後に継続的テストセッションスコープ内のテストが失敗したり古くなったりした場合は、ステータスアイコンによって通知されます。

関連ページ:

コードカバレッジの視覚化

カバレッジを視覚化し、結果データをテストするために、dotCover は Visual Studio エディターで現在のスナップショット内のステートメントをハイライトできます。エディターでコードカバレッジを視覚化する分析するスナップショットをカバレッジ結果ブラウザーウィンドウまたはユニットテストカバレッジウィンドウで開きます。現在のスナップショットが開いているウィンドウのツールバーでハイライトコードをクリックします。dotCover は、現在のカバレッジスナップショットに含まれているすべてのアセ...

カバーテストに移動する

dotCover は、コード内の特定のステートメントをカバーする単体テストを検出するためのショートカットを提供します。Visual Studio エディターでは、カバーするテストを一覧表示するポップアップを呼び出して、これらのテストのいずれかに直接移動できます。さらに、このポップアップから、即座に実行したり、既存の単体テストセッションに追加したりできます。dotCover はカバレッジユニットテストに関する情報を現在のカバレッジスナップショットから取得します。この情報は利用できない場合があり、d...

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

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

Unit Test Sessions ウィンドウ

dotCover は、単体テストセッションウィンドウで単体テストを実行します。このウィンドウは、現在のドキュメントまたはプロジェクトまたはソリューションからテストを実行すると、自動的に表示されます。詳細については、「ユニットテストセッション」を参照してください。このウィンドウは、複数の単体テストセッションを同時に、独立して実行できるように設計されています。セッションは、任意の組み合わせのテストで構成できます。デバッグモードでは、一度に実行できるセッションは 1 つだけです。ユニットテストツリーに...