Programing
Pest 4.x: Unificando Testes Unitários e de Navegador com Suporte Nativo ao Playwright
Published:
•
Duration: 5:42
0:00
0:00
Transcript
Apresentadora: E aí, pessoal, bem-vindos de volta ao Allur! Eu sou a Juliana Santos e hoje o papo é para quem, assim como eu, já perdeu algumas noites de sono tentando configurar um pipeline de CI/CD que precisava rodar testes de backend em PHP e testes de frontend com alguma ferramenta em JavaScript.
Apresentadora: E para dissecar essa novidade comigo, eu recebo hoje o Rafael Brandão. O Rafael é Arquiteto de Software, especialista em ecossistema Laravel e um entusiasta de longa data de testes automatizados. Rafael, seja muito bem-vindo ao Allur! Cara, que prazer ter você aqui para falar de uma versão que mal saiu do forno e já está dando o que falar.
Convidado: Valeu demais, Juliana! O prazer é todo meu. Olha, eu confesso que quando vi o anúncio do Pest 4.x e aquela integração nativa com o Playwright, eu dei um pulo da cadeira. A gente que está no dia a dia do desenvolvimento sabe o quanto dói manter duas "pilhas" de testes diferentes. Falar disso aqui no Allur vai ser massa!
Apresentadora: Pois é, Rafael! Vamos começar pelo básico. Qual era a "dor" principal que a gente sentia antes dessa unificação? Por que essa separação entre o teste do PHP e o teste do navegador incomodava tanto as equipes?
Convidado: Cara, o problema é o que a gente chama de "silo de conhecimento". Tipo assim, você tem um time de PHP que é mestre em escrever testes unitários e de integração usando a sintaxe fluida do Pest. Mas, na hora de fazer um teste "ponta a ponta", o E2E, a gente tinha que mudar a chave. Tinha que abrir o ecossistema Node, lidar com `package.json`, configurar drivers de navegador que vira e mexe quebravam no CI... era um overhead absurdo. Você acabava tendo dois projetos de teste dentro de um único projeto de software. E o pior: se você mudasse uma rota no Laravel, tinha que lembrar de atualizar o teste lá no Cypress, que usa outra linguagem, outro padrão. Era um convite ao erro, né?
Apresentadora: Com certeza! E aí entra o Pest 4.x. O que muda de fato agora com esse suporte "nativo" ao Playwright? Como é que o Pest, que a gente conhece por ser aquela camada elegante sobre o PHPUnit, consegue controlar um navegador sem a gente precisar tocar em JavaScript?
Convidado: Essa é a "mágica" da engenharia por trás do Pest 4.x, Ju. A equipe do Nuno Maduro conseguiu criar um suporte *first-party*. Isso significa que o Playwright agora é um "cidadão de primeira classe" dentro do Pest. Eles criaram uma abstração onde você instala o plugin e o próprio Pest gerencia os binários do Chromium, Firefox ou WebKit em background.
Apresentadora: Nossa, isso é um "aha moment" total! Então eu não preciso mais me preocupar em manter um ambiente Node.js só para rodar os testes de interface? Eu posso fazer tudo via Composer?
Convidado: Exatamente! Você limpa o seu ambiente. O seu `workflow` de CI/CD, que antes levava, sei lá, 10 minutos porque precisava baixar imagem Docker de Node, configurar cache de NPM e tal, agora fica muito mais enxuto. É uma única pilha de tecnologia. E tem um ponto legal: a curva de aprendizado. Se você já sabe Pest, você já sabe fazer teste de navegador agora. Você usa as mesmas expectativas, a mesma estrutura de pastas. A coesão que isso traz para o time é animal.
Apresentadora: E me diz uma coisa, Rafael, na sua experiência prática, você já testou isso em algum projeto real nessas últimas semanas? Qual foi o maior desafio que você encontrou nessa transição?
Convidado: Cara, eu testei em um projeto de e-commerce que a gente tem aqui, que é bem pesado em interações Vue.js. O maior desafio no começo foi "desaprender" a necessidade de ferramentas externas. Sabe aquele reflexo de querer abrir o painel do Cypress? Pois é. No Pest 4.x, como ele é muito integrado, você às vezes esquece que está testando o navegador.
Apresentadora: Massa! E a gente sabe que o Pest sempre focou muito na experiência do desenvolvedor, a DX. Você acha que essa unificação vai incentivar mais desenvolvedores backend a escreverem testes E2E? Porque antes tinha aquele "preguiça", né? "Ah, deixa que o pessoal do QA ou do Front faz o teste de navegador".
Convidado: Com certeza, Ju! Esse é o ponto chave. Quando a ferramenta é difícil, a gente tende a pular etapas. Se o teste de navegador está "ali do lado" do meu teste unitário, no mesmo arquivo se eu quiser, eu vou testar muito mais. Eu não preciso mais de uma equipe separada ou de um "especialista em Cypress". O desenvolvedor fullstack PHP agora tem superpoderes. Ele garante que a lógica do banco de dados está certa e, no segundo seguinte, garante que o modal de pagamento abriu corretamente para o usuário. Isso traz uma segurança de deploy que a gente não tinha de forma tão integrada antes.
Apresentadora: É uma mudança de paradigma real no ecossistema. Antes de a gente encerrar, Rafael, para quem está ouvindo e quer começar hoje mesmo a explorar o Pest 4.x com Playwright, qual o seu conselho? Por onde começar?
Convidado: Primeiro, não tenham medo da atualização. O Pest 4.x manteve a compatibilidade com o que já funcionava no 3.x. Meu conselho é: peguem aquele fluxo mais crítico da aplicação de vocês — tipo o login ou o checkout — e tentem migrar para o suporte nativo do Playwright no Pest. Vocês vão sentir na hora a diferença de não ter que trocar de IDE ou de linguagem. Deem uma olhada na documentação oficial, que como sempre, está impecável, e comecem pequeno. Quando vocês virem o navegador abrindo e executando as ações comandadas pelo PHP, vocês vão entender por que eu estou tão empolgado!
Apresentadora: Gente, sensacional. Rafael, muito obrigada por compartilhar essa visão. Realmente, parece que o Pest 4.x veio para derrubar os últimos muros que restavam no nosso fluxo de trabalho.
Convidado: Eu que agradeço, Juliana! Valeu pelo convite e bora testar, pessoal!
Apresentadora: É isso aí! E para você que acompanhou a gente até aqui, as notas do episódio com os links para a documentação do Pest 4.x e as dicas do Rafael estão lá no nosso site. Se você ainda sofre com a fragmentação de testes, talvez seja a hora de dar esse próximo passo.
Tags
Frontend
open-source
backend
php
testing
pest
playwright