Chromium Chronicle n. 14: aggiunta di test alla struttura a cascata

Episodio 14: di Zhaoyang Li su MTV ed Eric Aleshire in TOK (ottobre 2020)
Puntate precedenti

Vuoi rilevare le regressioni per la tua nuova funzionalità in Chrome? Aggiungi i tuoi test alla struttura a cascata (l'infrastruttura di Chrome e di test continui).

Nella struttura a cascata di Chrome sono disponibili numerosi strumenti per la creazione di test su diverse piattaforme. Questo articolo descrive come aggiungere una suite di test a un builder esistente. Prima di procedere, poniti queste domande:

I nuovi test dovrebbero essere disponibili in una suite completamente nuova o essere semplicemente aggiunti a una suite esistente?

  • I test sono organizzati in suite di test in base alla vicinanza della località e del tema di origine. Se i nuovi test non possono logicamente essere inseriti in nessuna suite esistente, probabilmente ti serve una nuova suite.

I test devono essere eseguiti su un builder pubblico o interno?

  • Utilizza un generatore interno se il codice si trova in un repository interno o se i test prevedono dati riservati.

I test devono essere eseguiti in CI FYI, CI principale o in coda di commit(CQ)?

  • FYI CI richiede l'automonitoraggio e viene utilizzata per il perfezionamento dei test o la sperimentazione.
  • I principali test CI sono monitorati regolarmente dagli sceriff.
  • CQ blocca l'invio del CL in caso di errore, ma richiede più risorse di infrastruttura. Una nuova suite deve sempre iniziare da CI prima di essere promossa a CQ.
  • In caso di dubbi, il team EngProd della tua piattaforma può aiutarti a decidere.

Ho già una suite di test in esecuzione in CI. Come faccio ad aggiungerla a CQ? / Cosa succede se mi serve un nuovo costruttore?

Come aggiungere una suite di test a un builder esistente

Per aggiungere una suite di test a un builder esistente, devi configurare alcuni file in //src/testing/buildbot/:

  1. Crea una chiave in gn_isolate_map.pyl per la nuova suite di test con etichetta target di test e informazioni sul tipo.
  2. Aggiungi la chiave a un gruppo di test in test_suites.pyl. Puoi trovare la mappatura dal nome del builder ai gruppi di test nel builder in waterfalls.pyl.

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. Più perfezionamenti.

    • mixins.pyl contiene argomenti che possono essere applicati a un gruppo di test a vari livelli di gruppo.
    • variants.pyl consente di eseguire una suite in più istanze con argomenti diversi.
  4. Rigenera i file di configurazione eseguendo generate_buildbot_json.py.

Successivamente, devi eseguire il check-in delle modifiche alla configurazione; i builder che eseguono questa suite rileveranno automaticamente i nuovi test e i risultati inizieranno a essere visualizzati nell'interfaccia web del generatore nella struttura a cascata, con tanto di informazioni di debug in caso di errore.