不安定なテストの管理

Azure DevOps Services

開発者の生産性は、開発中のコードに関する実際の問題を検出したり、タイムリーかつ信頼性の高い方法で更新したりするテストの機能に依存しています。 フラキーテストは実際の問題を見つけるための障壁を提示します。障害はテストされる変更とは関係ないことが多いためです。 薄いテストは、ソース コードや実行環境に変更がない場合でも、合格や失敗など、さまざまな結果を提供するテストです。 薄いテストは、出荷されたコードの品質にも影響します。

注意

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

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

  • 検出 - 独自のカスタム検出方法をプラグインするための再実行または拡張性を備えた薄片テストの自動検出

  • flakiness の管理 - テストが薄いとしてマークされると、そのブランチのすべてのパイプラインでデータを使用できるようになります

  • 薄いテストに関するレポート - 薄いテスト によって発生するビルドエラーを防ぐか、トラブルシューティングにのみ薄いタグを使用するかを選択する機能

  • 解決策 - 手動のバグ作成または手動マーキングとマーク解除テストを分析に基づいて薄くする

  • ループを閉じる - バグ解決/手動入力の結果として薄いテストをリセットする

薄いライフサイクル

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

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

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

テスト管理、Flaky テスト検出が有効、システム検出のスクリーンショット。

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

薄いテスト検出

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

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

    注意

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

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

テスト管理、Flaky テスト検出が有効、カスタム検出のスクリーンショット。

薄いテスト オプション

Flaky テスト オプションでは、次のセクションで説明するように、テスト レポートでフラキー テストを使用する方法と解決機能を指定します。

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

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

薄いレポート

注意

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

薄いとしてマークされたテスト

分析またはコンテキストに基づいてテストのマークを解除またはマーク解除するには、 Flaky (またはテストが既に薄いとしてマークされているかどうかに応じて、 UnFlaky) を選択します。

薄いテストをマークする

パイプラインでテストが薄い、または不一致とマークされている場合、現在のパイプラインで変更は行われません。 そのテストの今後の実行でのみ、変更された薄い設定が評価されます。 フレーキーとしてマークされたテストは、ユーザー インターフェイスに マークされた薄片 タグを持っています。

薄いテストを確認する

ヘルプとサポート