不安定なテストの管理

Azure DevOps Services

開発者の生産性は、開発中のコードに関する実際の問題を見つけたり、タイムリーで信頼性の高い方法で更新したりするテストの能力に依存します。 不安定なテストは、実際の問題を見つける際の障壁となります。失敗は、多くの場合、テスト中の変更とは関係がないためです。 不安定なテストは、ソース コードや実行環境に変更がない場合でも、成功や失敗など、さまざまな結果を示すテストです。 不安定なテストは、出荷済みのコードの品質にも影響します。

注意

この機能は、Azure DevOps Services でのみ使用できます。 通常、新しい機能は最初にクラウド サービスで導入されてから、Azure DevOps Server の次のメジャー バージョンまたは更新プログラムでオンプレミスで使用できるようになります。 詳細については、「 Azure DevOps 機能タイムラインを参照してください。

製品内で不安定なテストの管理を行う目的は、不安定なテストによって開発者の痛みの原因を減らし、ワークフロー全体に対応することです。 不安定なテストの管理には次の利点があります。

  • 検出 - 独自のカスタム検出方法を組み込むための再実行または拡張による不安定なテストの自動検出

  • 不安定さの管理 - テストが不安定としてマークされると、そのブランチのすべてのパイプラインでデータを使用できる

  • 不安定なテストに関するレポート - 不安定なテストによって発生したビルド エラーを防ぐか、トラブルシューティングにのみ不安定タグを使用するかを選択できる

  • 解決策 - 手動のバグ作成または手動マーキングとその解除テストが、分析に基づいて不安定となる

  • ループを閉じる - バグ解決や手動入力の結果として不安定なテストをリセットする

不安定のライフサイクル

不安定なテストの管理の有効化

不安定なテストの管理を構成するには、[プロジェクトの設定] を選び、[パイプライン] セクションで [テスト管理] を選択します。

[オン/オフ] ボタンを [オン] にスライドします。

[テスト管理]、有効になっている [不安定なテスト検出]、[システム検出] のスクリーンショット。

すべてのプロジェクトの既定の設定では、トラブルシューティングに不安定なテストを使用します。

不安定なテストの検出

不安定なテストの管理では、システムとカスタムの検出がサポートされます。

  • システム検出: 製品内の不安定な検出では、テスト再実行データが使用されます。 検出では、VSTest タスク (失敗したテストを再実行する機能) を使用するか、パイプライン内のステージを再試行します。 不安定なテストを検出するプロジェクト内の特定のパイプラインを選択できます。

    注意

    テストが不安定としてマークされると、そのブランチのすべてのパイプラインでデータを使用して、すべてのパイプラインのトラブルシューティングに役立てることができます。

  • カスタム検出: 独自の不安定な検出メカニズムを Azure Pipelines と統合し、レポート機能を使用できます。 カスタム検出では、不安定なテストのテスト結果メタデータを更新する必要があります。 詳細については、「テスト結果、結果メタデータ - REST API の更新」を参照してください。

[テスト管理]、有効になっている [不安定なテスト検出]、[カスタム検出] のスクリーンショット。

不安定なテスト オプション

[不安的なテスト オプション] では、次のセクションで説明されているように、テスト レポートでの不安定なテストの使用方法と解決機能を指定します。

不安定なテストの管理とレポート

[テスト管理] ページの [不安的なテスト オプション] で、不安的なテストをテストの概要レポートに含める方法のオプションを設定できます。 成功したテストと失敗したテストの両方の不安定なテスト データは、テスト結果で確認できます。 不安定タグは、不安定なテストを特定するのに役立ちます。 既定では、不安定なテストはテストの概要に含まれます。 ただし、不安定なテストの失敗でパイプラインが失敗しないようにする場合は、テストの概要に含めず、テストの失敗を抑制するように選択できます。 このオプションを使用すると、次のスクリーンショットに示すように、確実に不安定なテスト (成功と失敗の両方) が成功率から削除され、[報告されていないテスト] に表示されます。

不安定のレポート

注意

テストの概要レポートは、Visual Studio テスト タスクテスト結果の発行タスクに対してのみ更新されます。 他のシナリオで不安定なテストの失敗を抑制するために、カスタム スクリプトの追加が必要になる場合があります。

不安定としてマークされたテスト

[不安定] (またはテストが既に不安定としてマークされているかどうかに応じて、[不安定ではない]) を選ぶことで、分析またはコンテキストに基づいて、テストを不安定としてマークまたはマーク解除できます。

不安定なテストをマークする

パイプラインでテストが不安定または不安定ではないとしてマークされている場合、現在のパイプラインで変更は行われません。 そのテストの将来の実行でのみ、変更された不安定な設定が評価されます。 不安定としてマークされたテストには、ユーザー インターフェイスで [不安定とマーク済み] タグが付けられています。

不安定なテストを確認する

ヘルプとサポート