Chromium Chronicle #14:在瀑布中加入測試

第 14 集:作者:MTV 的 Zhaoyang Li 和 TOK 的 Eric Aleshire (2020 年 10 月)
上一集

想要偵測 Chrome 新功能的迴歸嗎?新增 測試 刊登序列 (Chrome 持續建構和測試基礎架構)!

Chrome 刊登序列有許多建構工具,可在各種不同情境下執行測試 平台。本文將說明如何將測試套件新增至現有 建立工具繼續之前,請先考慮以下問題:

新測試是採用新的套件,還是只加入現有套件?

  • 系統會依據來源位置和主題的距離在測試套件中安排測試。 如果新測試無法按照邏輯套用至任何現有套件,可能是因為 需要新的套件

測試應該在公開建構工具或內部建構工具中執行?

  • 如果程式碼位於內部存放區,請使用內部建構工具,或 測試涉及機密資料

測試應該在 FYI CI、主要 CI 或修訂版本佇列(CQ) 中執行?

  • 參考資訊 CI 需要您自我監控,用於修正測試 進行實驗。
  • 主要 CI 測試會定期監控
  • CQ 會在失敗時封鎖 CL 提交作業,但會採用更多基礎架構資源。 新的套件必須一律從 CI 開始,再升級為 CQ
  • 如果不確定,平台的 EngProd 團隊可以幫助您做決定。

我已經有在 CI 中執行的測試套件,該如何將其新增至 CQ?/ 如果我 需要新的建構工具嗎?

如何在現有建構工具中新增測試套件

如要在現有建構工具中新增測試套件,您需要設定一些檔案 在 //src/testing/buildbot/ 中:

  1. gn_isolate_map.pyl 中為新的測試套件建立金鑰 測試目標標籤和類型資訊
  2. 在「test_suites.pyl中,將該金鑰新增至測試群組。 (您可以在建構工具的名稱中找到從建構工具名稱到測試群組的對應關係: waterfalls.pyl)。

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. 更多微調內容

    • mixins.pyl 包含引數, ,並套用至不同群組層級的一組測試。
    • variants.pyl 有助於在多個執行個體中執行套件
  4. 執行以下指令來重新產生設定檔generate_buildbot_json.py

之後,檢查設定變更十分簡單。 執行這個套件的建構工具會自動接收新的測試 之後,建構工具的結果就會開始出現在網頁介面中 刊登序列 - 當發生錯誤時,會有大量的偵錯資訊!