Pest: Agora com suporte a testes paralelos

Last updated 25/08/2021

Ganhe tempo rodando seus testes de forma simultânea com o Pest!

🇵🇹 Translation contributed by @DanSysAnalyst. Read the English version here

Apertem os cintos! Hoje o Pest dá um passo à frente com chegada do Plugin Oficial de Testes paralelos. Veja as novidades e como instalar!

As vantagens dos testes paralelos

Por padrão, o Pest roda os seus testes em sequência. Podemos dizer de uma maneira simples que todos os seus testes serão enfileirados e executados um após o outro por um único processo PHP. Isto pode levar um certo tempo, especialmente em grandes suítes de teste.

Porém, os computadores atuais contam com processadores de vários núcleos e conseguem executar varias tarefas simultaneamente. Como seria se pudéssemos pedir ao Pest para utilizar mais de um núcleo ao mesmo tempo? Com certeza nossos testes rodariam muito mais rápido.

Então, temos o prazer de anunciar que, a partir de hoje, isso é já possível! O Pest, utilizando-se da integração com o Paratest, passa a promover essa funcionalidade de maneira simples e eficiente.

Instalação

Para iniciar, você precisa estar rodando a versão mais recente do Pest (v1.16.0+) e ter instalado o Plugin "Pest Parallel".

Execute o comando abaixo para atualizar o Pest e instalar o plugin:

composer update pestphp/pest && composer require pestphp/pest-plugin-parallel --dev

Agora você já pode executar o Pest passando a opção --parallel.

./vendor/bin/pest --parallel

Pest running in parallel mode

E isso é tudo! Você já está rodando seus testes em modo paralelo!

Dicas

Nós trabalhamos duro para garantir que os testes paralelos fossem executados perfeitamente, garantindo aquela experiência tão "Pest" que você já conhece.

Por exemplo, os testes em paralelos são exibidos da mesma forma que os testes em sequência. Nada mudou! Você continua desfrutando de resultados bem apresentados, bonitos e amigáveis ao usuário. Nada de mensagens e avisos complicados de entender.

Você poderá continuar utilizando o relatório de cobertura de código com os testes paralelos. Tudo foi integrado perfeitamente para uma perfeita experiência ao testar:

./vendor/bin/pest --parallel --coverage --min=90

Pest's awesome coverage output is available in parallel too!

Nós também demos uma atenção especial para assegurar suporte total ao Laravel. Basta você instalar o Pest e o plugin de testes paralelos e você poderá rodar testes com o Artisan sem problemas:

php artisan test --parallel

Aqui vai outra dica: ganhe tempo escrevendo '-p', que nada mais é que um atalho para a flag --parallel. Veja:

./vendor/bin/pest -p

Por padrão, o Pest vai subir tantos processos simultâneos quanto o número de núcleos existente no seu computador. Para ajustar esse número, você pode passar a opção --processes seguida do número de processos a serem usados:

./vendor/bin/pest -p --processes=10

Use the --processes option to configure the number of processes

Próximos passos

Estamos muito entusiasmados em apresentar o suporte a testes paralelos no Pest! Nós estivemos trabalhando nessa funcionalidade por um bom tempo e sabemos que você vai amar utilizá-la.

Temos muitos planos para testes paralelos, incluindo suporte para um sistema de hook completo, integração com PhpStorm, opção de renderização compacta e muito mais. Manteremos você informado!

Enquanto isso, aproveite todo o poder dos testes paralelos no Pest!