エピソード 14: MTV で Zhaoyang Li、東京で Eric Aleshire(2020 年 10 月)
前のエピソード
Chrome の新機能の回帰を検出したい場合は、ウォーターフォール(Chrome の継続的なビルドとテスト インフラストラクチャ)にテストを追加します。
Chrome のウォーターフォールには、さまざまなプラットフォームでテストを実行する多くのビルダーがあります。この記事では、既存のビルダーにテストスイートを追加する方法について説明します。先に進む前に、次の点を考慮してください。
新しいテストは、新しいスイートで公開する必要がありますか?それとも、既存のテストに追加するだけですか?
- テストは、ソースの場所とテーマの近接性に基づいてテストスイートにまとめられています。新しいテストが既存のスイートに論理的に合わない場合は、新しいスイートが必要になる可能性があります。
公開ビルダーと内部ビルダーのどちらでテストを実行すればよいですか?
- コードが内部リポジトリにある場合、またはテストに機密データが含まれる場合は、内部ビルダーを使用します。
FYI CI、メイン CI、commit キュー(CQ)のどちらでテストを実行すればよいですか?
- 参考として、CI にはセルフ モニタリングが必要であり、テストの改良やテストに使用されます。
- 保安官によって主要な CI テストが定期的にモニタリングされている。
- 障害発生時に CQ が CL の送信をブロックするが、より多くのインフラ リソースを必要とする。新しいスイートは必ず CI から開始してから CQ に昇格する。
- 不明な場合は、プラットフォームの EngProd チームがサポートします。
すでに CI で実行しているテストスイートを CQ に追加するにはどうすればよいですか?/ 新しいビルダーが必要な場合はどうすればよいですか?
chrome-browser-infra@
チームが評価とセットアップの支援を開始できるように、[インフラ] > [クライアント] > [Chrome コンポーネント] でバグを報告してください。
既存のビルダーにテストスイートを追加する方法
既存のビルダーにテストスイートを追加するには、//src/testing/buildbot/
でいくつかのファイルを設定する必要があります。
gn_isolate_map.pyl
で、テスト ターゲット ラベルとタイプ情報を使用して、新しいテストスイートのキーを作成します。test_suites.pyl
のテストグループにキーを追加します。 (ビルダー名からビルダーのテストグループへのマッピングはwaterfalls.pyl
にあります)。'all_simulator_tests': { 'previously_existing_test_suite': {}, 'exciting_new_feature_test_suite': {}, },
さらに微調整。
mixins.pyl
には、さまざまなグループレベルでテストのグループに適用できる引数が含まれています。variants.pyl
を使用すると、異なる引数を使用して複数のインスタンスでスイートを実行できます。
generate_buildbot_json.py
を実行して構成ファイルを再生成します。
その後は、構成の変更をチェックインするだけで済みます。このスイートを実行しているビルダーが自動的に新しいテストを取得し、ウォーターフォールのビルダーの結果がウェブ インターフェースに流れ始めます。これで、失敗した場合のデバッグ情報が豊富になります。