Chromium Chronicle #14: Şelaleye Test Ekleme

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

Chrome'daki yeni özelliğinizle ilgili regresyonları tespit etmek mi istiyorsunuz? Testlerinizi şelale (Chrome'un sürekli derleme ve test altyapısı) ekleyin.

Chrome'un şelalesinde, çeşitli platformlarda testler yapan birçok oluşturucu vardır. Bu makalede, mevcut bir derleyiciye test paketinin nasıl ekleneceği açıklanmaktadır. Devam etmeden önce şu soruları göz önünde bulundurun:

Yeni testler yeni bir pakette mi uygulanmalı yoksa mevcut bir pakete mi eklenecek?

  • Testler, kaynak konumunun ve temanın yakınlığına göre test paketlerinde düzenlenir. Yeni testleriniz mevcut herhangi bir pakete mantıksal olarak uymuyorsa muhtemelen yeni bir pakete ihtiyacınız vardır.

Testler herkese açık bir derleyicide mi yoksa dahili bir derleyicide mi çalıştırılmalı?

  • Kod bir dahili depoda bulunuyorsa veya testler gizli veriler içeriyorsa bir dahili derleyici kullanın.

Testler Bilgilendirici CI'da mı, ana CI'da mı yoksa kaydetme sırasında mı(CQ) çalıştırılmalı?

  • Bilginize CI, kendi kendini izlemenizi gerektirir ve test iyileştirme veya deneme için kullanılır.
  • Ana CI testleri, görevliler tarafından düzenli olarak izlenir.
  • CQ, başarısız olduğunda CL gönderimini engeller ancak daha fazla altyapı kaynağı alır. Yeni bir paket, CQ'ya yükseltilmeden önce her zaman CI'dan başlamalıdır.
  • Emin olamıyorsanız platformunuzun EngProd ekibi karar vermenize yardımcı olabilir.

CI'de çalışan bir test paketim zaten var, bunu CQ'ya nasıl eklerim? / Yeni bir oluşturucuya ihtiyacım olursa ne olur?

Mevcut bir derleyiciye test paketi ekleme

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

  1. gn_isolate_map.pyl uygulamasında test hedef etiketi ve tür bilgisine sahip yeni test paketi için bir anahtar oluşturun.
  2. test_suites.pyl uygulamasında bu anahtarı bir test grubuna ekleyin. (Oluşturucu adından test gruplarıyla olan eşlemeyi waterfalls.pyl içinde bulabilirsiniz.)

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

    • mixins.pyl, çeşitli grup düzeylerinde bir grup teste uygulanabilecek bağımsız değişkenler içerir.
    • variants.pyl, bir paketin farklı bağımsız değişkenlerle birden fazla örnekte çalıştırılmasına yardımcı olur.
  4. generate_buildbot_json.py komutunu çalıştırarak yapılandırma dosyalarını yeniden oluşturun.

Bundan sonra, yapılandırma değişikliklerinizi kontrol etmeniz yeterlidir. Bu paketi çalıştıran geliştiriciler yeni testleri otomatik olarak alır ve şelaledeki oluşturucu için sonuçlar web arayüzü üzerinden gelmeye başlar. Ayrıca, hata olması durumunda çok sayıda hata ayıklama bilgisi de sağlanır.