Tudo o que sabemos sobre a Pest 4

Laravel Open Source Pacotes PHP Testes Webdev Devtools Ferramentas
Tudo o que sabemos sobre a Pest 4

Nuno Maduro foi o segundo palestrante na Laracon US 2025 na terça-feira, revelando novos recursos para o futuro Pest v4.0. Quando escrevemos sobre a palestra de Nuno sobre o Pest 3 na Laracon US em 2024 , os usuários já haviam instalado o Pest mais de 18 milhões de vezes. Um ano depois, o Pest já havia sido instalado cerca de 39 milhões de vezes !

Se você achou que o Pest v2 e o Pest v3 eram enormes, o Pest v4 leva as coisas a um novo patamar! Esta versão se concentra em unir o melhor dos testes unitários e dos testes de navegador .

Nuno apresenta testes de navegador para Pest v4
Nuno apresenta testes de navegador para Pest v4

Você pode começar a escrever testes de navegador modernos facilmente no Pest 4, com tecnologia Playwright. Nunca os testes entre o backend e o frontend do seu aplicativo foram tão coesos.

  • Teste de navegador de ponta a ponta no Pest
  • Teste visual
  • Teste de dispositivo
  • Cobertura de código com testes de navegador e unidade
  • Sessões de conserto no meio do teste
  • Fragmentação de teste para execuções de testes paralelas em CI
  • E mais...

Vamos analisar com mais detalhes os destaques desses recursos compartilhados na Laracon US:

Teste de navegador em Pest

Os testes de navegador no Pest permitem executar testes no seu navegador usando ferramentas modernas como o Playwright, mas sem ter um conjunto de testes separado para testes unitários e de ponta a ponta. Combinar testes de navegador e unitários cria coesão na sua estrutura de testes e abre novas possibilidades:

test('login', function () {
$user = User::factory()->create();
 
visit('/')
->click('Log in')
->type('email', $user->email)
->type('password', 'secret')
->press('Log in')
->assertSee('Dashboard');
});

O Pest aguarda automaticamente após a interação com a página, clicar em links, preencher e enviar formulários e, em seguida, confirmar que o usuário visita o painel. Além dessas APIs poderosas, o Pest permite depurar testes de navegador usando o ->debug() método e ->tinker() :

test('login', function () {
$user = User::factory()->create();
 
visit('/')
->click('Log in')
->type('email', $user->email)
->type('password', 'secret')
->press('Log in')
->assertSee('Dashboard')
->tinker();
});

O método acima tinker() pausará a execução e fornecerá o estado do servidor e do banco de dados em um REPL:

Ajuste o REPL durante o teste do navegador
Ajuste o REPL durante o teste do navegador

Teste visual

O Pest 4 inclui métodos de teste visual que podem detectar quando a interface do usuário da sua página mudou, comparando a diferença entre uma captura de tela antes e depois. Isso permite comparar a interface do usuário antes e depois de uma mudança e garantir que nenhuma regressão tenha ocorrido:

A imagem de depuração visual indica onde uma IU foi alterada
A imagem de depuração visual indica onde uma IU foi alterada
Um controle deslizante para comparar antes e depois das mudanças na interface do usuário lado a lado
Um controle deslizante para comparar antes e depois das mudanças na interface do usuário lado a lado
Comparação visual após alteração do CSS
Comparação visual após alteração do CSS

Teste de fumaça

O teste de fumaça no Pest 4 é uma maneira poderosa de garantir que as solicitações em seu aplicativo sejam bem-sucedidas e que nenhum erro de JavaScript tenha ocorrido. Você pode usar o teste de fumaça para determinar rapidamente se as páginas do seu aplicativo estão livres de erros de JavaScript e logs de console:

test('login', function () {
$user = User::factory()->create();
 
visit(['/', '/about'])
->assertNoJavaScriptErrors()
->assertNoConsoleLogs();
 
// Or simply check for no errors/logs with:
visit(['/', '/about'])
->assertNoSmoke();
});

Teste de dispositivo e modo claro/escuro

O Pest 4 conta com novos recursos para testes de dispositivos que facilitam a especificação do tipo de dispositivo a ser usado para executar o teste. Aqui estão alguns exemplos da apresentação do Nuno na Laracon US:

visit('/')->on()->mobile();
visit('/')->on()->iPhone15();
visit('/')->inDarkMode();
visit('/')->inLightMode();
// ...

Testes paralelos

O Pest 4 suporta testes paralelos no navegador por meio dos recursos paralelos do Playwrights. Isso torna o conjunto de testes muito mais rápido do que conjuntos de testes anteriores baseados em navegador, como o Dusk. Além disso, nas ações do GitHub, você pode aproveitar os testes paralelos usando a --shard flag para dividir os testes em tarefas separadas que são executadas em paralelo:

strategy:
matrix:
shard: [1, 2, 3, 4, 5]
 
name: Tests (Shard ${{ matrix.shard }}/5)
 
steps:
- name: Run tests
run: pest --parallel --shard ${{ matrix.shard }}/5

Data de lançamento

O lançamento de Pest 4 está previsto para 21 de agosto de 2025 , no Laravel Live Denmark 2025 deste ano . Qual recurso te deixou mais animado? Conte para a gente no seu aplicativo de mídia social favorito !