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

第 14 集:MTV 中的 Zhaoyang Li 和 Eric Aleshire 在 TOK 寫的 (2020 年 10 月)
先前的集數

想要在 Chrome 中偵測新功能的迴歸問題嗎?將您的測試新增至「刊登序列」(Chrome 的持續建構與測試基礎架構)!

Chrome 刊登序列有許多建構工具,會在各種平台上執行測試。本文說明如何將測試套件新增至現有的建構工具。繼續操作前,請先考慮下列問題:

新的測試應該納入全新的套件,還是只加入現有套件?

  • 測試是依據來源位置和主題的鄰近程度整理在測試套件中。如果新測試無法符合任何現有套件的邏輯,您可能需要新的套件。

測試是在公開建構工具或內部建構工具執行嗎?

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

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

  • FYI CI 需要您自行監控,並用於測試修正或實驗。
  • 管理階層會定期監控主要 CI 測試
  • CQ 會在失敗時封鎖 CL 提交作業,但需要更多基礎架構資源。新套件應在升級為 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,以重新產生設定檔

完成這些操作後,就可以輕鬆檢查設定變更;執行這個套件的建構工具會自動接收新測試,而刊登序列中的建構工具結果會開始在網頁介面中流動;萬一出現錯誤,也會提供大量偵錯資訊!