Pest désormais compatible avec le Parallel Testing

Last updated 24/08/2021

Gagnez un temps précieux en lançant vos tests en parallèle!

🇫🇷 Translation contributed by Alex Martin. Read the English version here

Accrochez-vous : Pest PHP passe la sixième avec la sortie du plugin officiel Parallel Testing! Qu’est ce que ça va changer pour vous ? Comment l’essayer dès maintenant ?

Pourquoi lancer vos tests en parallèle ?

Par défaut, Pest lance les tests de votre suite en série, au sein d’un unique processus. Concrètement, tant qu’un test est en cours d’exécution, les autres sont en attente. De fait, plus une suite de tests est fournie, plus longtemps vous devrez attendre les résultats.

Hors, sur la majorité de nos ordinateurs modernes, nous avons désormais des processeurs avec au moins 4 cœurs. 20% des ordinateurs portables vendus aujourd’hui embarquent même 8 cœurs ! Et si Pest était en mesure de tirer partie de toute cette puissance inutilisée ?

Nous avons le plaisir de vous annoncer qu’à partir d’aujourd’hui, c’est possible ! Pest bénéficie désormais d’une intégration poussée avec Paratest pour vous permettre de tirer partie de cette fonctionnalité de manière transparente !

Installation

Pour commencer, assurez-vous d’utiliser la dernière version de Pest (v1.16.0+) et du plugin Pest Parallel :

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

Ensuite, lorsque vous lancerez Pest depuis votre terminal, ajoutez la commande --parallel :

./vendor/bin/pest --parallel

Pest running in parallel mode

C’est tout ! Pest exécute désormais vos tests en parallèle.

Astuces et précisions

Nous avons travaillé dur pour intégrer le Parallel Testing de manière transparente. L’expérience utilisateur qui en découle est limpide, conformément à l’éthos de Pest !

Par exemple, le compte rendu graphique que vous adorez sur Pest PHP est toujours aussi soigné en utilisant l’option --parallel. Les fonctionnalités telles que once & skip fonctionnent désormais parfaitement, vous n’avez pas à vous soucier de potentiels cas particuliers.

Même le rapport de couverture de votre code est parfaitement intégré:

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

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

En amont, nous avons aussi travaillé d’arrache-pied pour assurer un support natif de Pest au sein du framework Laravel. Dès lors que vous avez installé Pest et son plugin Pest Parallel, vous pourrez lancer la commande native de votre framework et bénéficier directement des avantages que vous procure Pest :

php artisan test --parallel

Ah, oui, on sait. Écrire --parallel, c’est un peu long. On a pensé à tout ! Essayez donc l’option courte -p à la place :

./vendor/bin/pest -p

Par défaut, Pest lancera autant de processus que vous avez de cœurs sur votre processeur. Si vous souhaitez affiner ce réglage, ajoutez l’option --processes en spécifiant le nombre de processus souhaités :

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

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

Parallèle, et au-delà !

Nous sommes ravis de pouvoir enfin offrir le Parallel Testing aux utilisateurs de Pest. L’intégration de cette fonctionnalité nous a demandé beaucoup d’efforts pour offrir l’expérience développeur fluide dont nous rêvions. Et vous allez adorer ça !

Nous avons beaucoup d’autres améliorations prévues par la suite pour le Parallel Testing, dont entre autres un système de hook complet, une intégration à PhpStorm, une option de compte rendu de tests compact, et bien d’autres.

En attendant, profitez bien de tout ce temps gagné grâce à Pest!