Chromium Chronicle #14: Şelaleye Test Ekleme

14. Bölüm: MTV'de Zhaoyang Li ve TOK'da Eric Aleshire tarafından (Ekim 2020)
Önceki bölümler

Chrome'daki yeni özelliğiniz için regresyonları tespit etmek ister misiniz? şelale (Chrome'un sürekli derleme ve test altyapısı) testlerinden faydalanabilirsiniz.

Chrome'un şelalesinde çeşitli testler yapan birçok derleyici vardır platformlar. Bu makalede, mevcut bir oluşturucu. Devam etmeden önce şu soruları göz önünde bulundurun:

Yeni testler yepyeni bir pakette mi yoksa yalnızca mevcut bir pakete mi eklenmeli?

  • Testler, test paketlerinde kaynak konumunun ve temanın yakınlığına göre düzenlenir. Yeni testleriniz mantıksal olarak mevcut herhangi bir pakete sığmıyorsa büyük olasılıkla yeni bir pakete ihtiyacınız var.

Testler herkese açık oluşturucuda mı yoksa dahili oluşturucuda mı çalıştırılmalıdır?

  • Kod dahili bir depoda bulunuyorsa dahili bir oluşturucu kullanın veya Testler gizli veriler içeriyorsa.

Testler FYI CI, ana CI veya kaydetme sırasında(CQ) çalıştırılmalı mı?

  • FYI CI'nın kendi kendine izlemeniz olması gerekir ve test geliştirme ya da olanak sağlar.
  • Ana CI testleri, şerifler tarafından düzenli olarak izlenir.
  • Hata durumunda CQ, CL gönderimini engeller ancak daha fazla altyapı kaynağı alır. Yeni paket, CQ'ye yükseltilmeden önce her zaman CI'dan başlamalıdır.
  • Emin değilseniz platformunuzun EngProd ekibi karar vermenize yardımcı olabilir.

CI'da çalışan bir test paketim var. Bunu CQ'ya nasıl eklerim? / yeni bir mühendise mi ihtiyacınız var?

Mevcut bir derleyiciye test paketi ekleme

Mevcut bir derleyiciye test paketi eklemek için bazı dosyaları yapılandırmanız gerekir //src/testing/buildbot/ içinde:

  1. Yeni test paketi için gn_isolate_map.pyl ürününde bir anahtar oluşturun test hedefi etiketi ve tür bilgileriyle değiştirin.
  2. Bu anahtarı test_suites.pyl bölgesinde bir test grubuna ekleyin. (Oluşturucu adından eşlemeyi oluşturucudaki test gruplarına waterfalls.pyl.)

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. Daha fazla ince ayar.

    • mixins.pyl, şu özelliklere sahip bağımsız değişkenler içeriyor: çeşitli grup düzeylerinde bir grup teste uygulanabilir.
    • variants.pyl, bir paketin birden fazla örnekte çalıştırılmasına yardımcı olur kullanabilirsiniz.
  4. Aşağıdaki komutu çalıştırarak yapılandırma dosyalarını yeniden oluşturun generate_buildbot_json.py.

Bu adımdan sonra yapılandırma değişikliklerinizi kontrol etmeniz yeterlidir; Bu paketi çalıştıran geliştiriciler yeni testleri otomatik olarak alır ve Derleyici'nin sonuçları web arayüzüne aktarılmaya başlar. bir araya getirir. Başarısızlık durumunda birçok hata ayıklama bilgisi sunar.