管理 Flaky 測試

Azure DevOps Services

開發人員的生產力依賴測試的能力,以及時且可靠的方式尋找開發下程式碼或更新的實際問題。 Flaky 測試會呈現尋找實際問題的障礙,因為失敗通常與所測試的變更無關。 Flaky 測試是一項測試,可提供不同的結果,例如通過或失敗,即使原始程式碼或執行環境中沒有任何變更也一樣。 Flaky 測試也會影響出貨程式碼的品質。

注意

這項功能僅適用于 Azure DevOps Services。 一般而言,新功能會先在雲端服務中引進,然後在下一個主要版本或更新Azure DevOps Server中提供內部部署。 若要深入瞭解,請參閱功能時程表Azure DevOps

在產品中引進 Flaky 測試管理的目標是要降低開發人員因應性測試所造成的麻煩,並滿足整個工作流程。 Flaky 測試管理提供下列優點。

  • 偵測 - 使用重新執行或擴充性自動偵測 Flaky 測試,以插入您自己的自訂偵測方法

  • 管理 flakiness - 一旦測試標示為 flaky,資料就可供該分支的所有管線使用

  • 報告 Flaky 測試 - 如果您想要防止因 Flaky 測試所造成的建置失敗,或只針對疑難排解使用 Flaky 標籤,可以選擇的能力

  • 解決 方式 - 根據您的分析,手動建立錯誤或手動標記和解除標記測試

  • 關閉迴圈 - 重設 Flaky 測試,因為錯誤解析/手動輸入

Flaky lifecycle

啟用 Flaky 測試管理

若要設定 flaky 測試管理,請選擇[Project設定],然後在[Pipelines] 區段中選取 [測試管理]。

將 [開啟/關閉] 按鈕滑動至 [開啟]。

Screenshot of Test Management, Flaky test detection enabled, System detection.

所有專案的預設設定是使用 Flaky 測試進行疑難排解。

Flaky 測試偵測

Flaky 測試管理支援系統和自訂偵測。

  • 系統偵測:產品內 Flaky 偵測會使用測試重新執行資料。 偵測是透過 VSTest 工作 重新執行失敗的測試功能,或重試管線中的階段。 您可以在專案中選取您想要偵測 Flaky 測試的特定管線。

    注意

    一旦測試標示為 flaky,該分支的所有管線都會提供資料,以協助針對每個管線進行疑難排解。

  • 自訂偵測:您可以整合自己的 Flaky 偵測機制與Azure Pipelines,並使用報告功能。 使用自訂偵測時,您必須更新 Flaky 測試的測試結果中繼資料。 如需詳細資訊,請參閱 測試結果、結果中繼資料 - 更新 REST API

Screenshot of Test Management, Flaky test detection enabled, Custom detection.

Flaky 測試選項

Flaky 測試選項會指定如何在測試報告中使用 Flaky 測試,以及解析功能,如下列各節所述。

Flaky 測試管理和報告

在 [測試管理] 頁面的 [Flaky 測試選項] 底下,您可以設定測試摘要報告中如何包含 Flaky 測試的選項。 測試結果 中提供通過和失敗測試的 Flaky 測試資料。 Flaky 標籤可協助您識別 Flaky 測試。 根據預設,測試摘要中會包含 Flaky 測試。 不過,如果您想要確保模糊測試失敗不會失敗您的管線,您可以選擇不要將它們包含在測試摘要中,並隱藏測試失敗。 此選項可確保 (通過和失敗的測試) 都會從通過百分比中移除,並在 未回報的測試中顯示,如下列螢幕擷取畫面所示。

Flaky Reporting

注意

[測試摘要] 報表只會針對Visual Studio [測試] 工作和 [發佈測試結果] 工作更新。 您可能需要新增自訂腳本,以隱藏其他案例的 Flaky 測試失敗。

標示為 Flaky 的測試

根據測試是否已標示為 flaky.) ,您可以選擇 Flaky (或UnFlaky,根據測試是否已經標示為flaky.)

Mark flaky Test

當測試在管線中標示為不平移或不穩定時,目前管線中不會進行任何變更。 只有在未來執行該測試時,才會評估已變更的 Flaky 設定。 標示為 flaky 的測試在使用者介面中具有 標示的 flaky 標籤。

Confirm flaky Test

說明及支援