Chromium Chronicle #14: como adicionar testes à cascata

Episódio 14: por Zhaoyang Li, na MTV, e Eric Aleshire, no Canadá (outubro de 2020)
Episódios anteriores

Quer detectar regressões para seu novo recurso no Chrome? Adicione seu na cascata (infraestrutura contínua de teste e criação do Chrome).

Há muitos builders na hierarquia do Chrome que executam testes em uma variedade de plataformas. Este artigo descreve como adicionar um pacote de testes a um de sites. Antes de continuar, considere estas questões:

Os novos testes devem ser incluídos em um pacote novo ou apenas adicionados a um que já existe?

  • Os testes são organizados em conjuntos de testes por proximidade do local de origem e do tema. Se seus novos testes não se encaixarem logicamente em nenhum conjunto existente, você provavelmente precisa de um novo pacote.

Os testes precisam ser executados em um builder público ou interno?

  • Use um criador interno se o código estiver em um repositório interno, ou Os testes envolvem dados confidenciais.

Os testes devem ser executados na CI para fins de informação, CI principal ou fila de confirmação(CQ)?

  • Para sua informação, a CI precisa do seu automonitoramento e é usada para refinamento de testes ou experimentação.
  • Os principais testes de CI são monitorados regularmente pelos policiais.
  • O CQ bloqueia o envio do CL na falha, mas usa mais recursos de infraestrutura. Um novo pacote sempre deve começar pela CI antes de ser promovido para CQ.
  • Se você não tiver certeza, a equipe do EngProd da sua plataforma poderá ajudar.

Já tenho um pacote de testes em execução no CI, como posso adicioná-lo à CQ? / E se eu precisa de um novo construtor?

Como adicionar um pacote de testes a um builder existente

Para adicionar um pacote de testes a um builder existente, é preciso configurar alguns arquivos. em //src/testing/buildbot/:

  1. Crie uma chave no gn_isolate_map.pyl para o novo pacote de testes. com o rótulo do destino de teste e as informações do tipo.
  2. Adicione essa chave a um grupo de teste em test_suites.pyl. Você pode encontrar o mapeamento do nome do builder para os grupos de teste no builder em waterfalls.pyl).

    'all_simulator_tests': {
      'previously_existing_test_suite': {},
      'exciting_new_feature_test_suite': {},
    },
    
  3. Mais ajustes.

    • mixins.pyl contém argumentos que podem ser aplicados a um grupo de testes em vários níveis de grupo.
    • O variants.pyl ajuda a executar um pacote em várias instâncias. com argumentos diferentes.
  4. Gere novamente os arquivos de configuração executando generate_buildbot_json.py.

Depois disso, é só verificar as mudanças de configuração. os criadores que executam esse pacote receberão os novos testes automaticamente, e os resultados vão começar a fluir na interface da Web para o builder em a hierarquia, com muitas informações de depuração em caso de falhas!