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 .

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:

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:



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 !