管理 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 生命週期

啟用 Flaky 測試管理

若要設定 Flaky 測試管理,請選擇[專案設定],然後在[管線] 區段中選取 [測試管理]。

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

[測試管理] 的螢幕擷取畫面,已啟用 Flaky 測試偵測,系統偵測。

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

Flaky 測試偵測

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

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

    注意

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

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

測試管理、已啟用 Flaky 測試偵測、自訂偵測的螢幕擷取畫面。

Flaky 測試選項

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

Flaky 測試管理和報告

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

Flaky 報告

注意

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

標示為 flaky 的測試

您可以根據分析或內容選擇 Flaky (或UnFlaky,根據測試是否已經標示為 flaky.) ,將測試標示為flaky或解除標記測試

標記 flaky 測試

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

確認 Flaky 測試

說明及支援