dotCover 2020.3 ヘルプ

継続的なテスト

継続的なテストは、さまざまな方法でテスト駆動開発(英語)のプラクティスを合理化します。ユニットテストに影響を与える変更を検出し、影響を受けたすべてのプロジェクトを再構築し、新しいテストと古いテストをすべて再実行します。すべてがバックグラウンドで自動的に行われます。影響を受けるプロジェクトのみが再構築されます。新しいテストと旧式のテストのみが再実行されます。

ユニットテストセッションは、ユニットテストセッションウィンドウで連続テストモードのいずれかに切り替えることができます。連続テストを無効にするには、モードボタンをオフに切り替えます。

dotCover: Selecting continuous testing mode

古いテスト

継続的なテストでは、「古いテスト」という概念を使用して、現在未知の実行結果を持つテストを定義します。明らかに、一度も実行されていないテスト、中止されたテスト、または何らかの理由で終了しなかったテストはすべてこのカテゴリに分類されます。

明確な結果(合格または不合格)で終了したテストは関連しています(古いものではありません)が、あなたのコードを変更するまでです。変更後も古いテストがないことを確認するには、すべてのテストを再実行するか、変更の影響を受けたテストを再実行する必要があります。

連続テストが有効な場合、dotCover はすべての単体テストのカバレッジを計算し、対象コードの変更を監視して、変更後にテストが古くなるかどうかを検出します。テストが古くなると、dotCover は Icon dirty test などのアイコンに疑問符を追加し、ステータスインジケーターも変更します。

dotCover: Outdated tests notification

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

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

連続テストモード

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

  1. どのように継続的テストがトリガーされますか?

    または、言い換えると、テストはいつ自動開始されますか? ソリューションを明示的に構築した後、または保存した後ですか? メインメニュー ReSharper | オプション… | dotCover | 継続的なテストを使用して、ReShaper オプションで優先トリガーを選択できます。

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

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

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

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

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

  2. どのテストが自動開始され、どのように開始されますか?

    自動スタートテストトグルボタンを使用して、ユニットテストセッションウィンドウのツールバーで優先する方法を選択できます。可能なオプションは自明です:

    • [ ビルドの自動スタートテスト | セーブ ]: すべてのテストを実行 : すべてのテストはカバレッジ分析なしで実行されます。

    • [ ビルドの自動スタートテスト | セーブ ]: 新しいテストと古いテストを実行する : カバレッジ分析を行わずに、新しいテストと期限切れのテストのみを実行します。これは最もリソースを節約するモードです。

    • [ ビルドの自動スタートテスト | セーブ ]: 新しいテストと古いテストをカバーする : カバレッジ分析を有効にして、新しいテストと古いテストを実行します。これは最もリソースを消費するが最も信頼性の高いモードです。dotCover は、カバレッジ情報を常に最新の状態に保ちます。

重要 :

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

dotCover: Outdated coverage info

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

dotCover: Outdated coverage highlighting

それにもかかわらず、カバレッジ情報が依然として関連していると確信できる場合は、これらのモードを使用し、情報が実際に古くなるまでカバレッジを延期することができます。

連続テストの範囲

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

実行中の継続的なテスト

継続的テストモードの 1 つを有効にするとすぐに、dotCover は単体テストを実行するように要求します。すべてのテストが緑色であることを確認したら、単体テストセッションウィンドウを閉じて、プロジェクトの作業に進むことができます。メインの Visual Studio ウィンドウのステータスバーで現在のテストステータスを確認できます。

Continuous testing status on Visual Studio toolbar

ステータスアイコンは、有効化された継続テスト スコープ持つセッション テストが失敗した場合、または変更後に期限切れになった場合に通知されます。