Utiliser PHPUnit 10 avec Symfony
Cet article a été publié depuis plus de 6 mois,
cela signifie que le contenu peut ne plus être d'actualité.
Au moment où j’écris ce billet, PHPUnit 10 a été publié il y a près de 8 mois (le 3 février 2023). Et pourtant si on tente de l’utiliser dans un projet Symfony utilisant le bridge symfony/phpunit-bridge
, nous obtenons l’erreur suivante: PHP Fatal error: Uncaught Error: Class "PHPUnit\TextUI\Command
.
PHP Fatal error: Uncaught Error: Class "PHPUnit\TextUI\Command" not found in /home/jdecool/Workspace/sandbox/test/bin/phpunit:11
Stack trace:
#0 {main}
thrown in /home/jdecool/Workspace/sandbox/test/bin/phpunit on line 11
Fatal error: Uncaught Error: Class "PHPUnit\TextUI\Command" not found in /home/jdecool/Workspace/sandbox/test/bin/phpunit on line 11
Error: Class "PHPUnit\TextUI\Command" not found in /home/jdecool/Workspace/sandbox/test/bin/phpunit on line 11
Call Stack:
0.0001 396248 1. {main}() /home/jdecool/Workspace/sandbox/test/bin/phpunit:0
La raison étant que le script fourni par Symfony utilise du code qui a été supprimé dans la dernière version majeure du framework de test.
Il y a plusieurs propositions en cours pour corriger ce problème, mais aucune n’est actuellement mergée.
Pour corriger cela, vous pouvez simplement modifier le fichier bin/phpunit
en remplaçant la ligne ci-dessous:
- PHPUnit\TextUI\Command::main();
+ exit((new PHPUnit\TextUI\Application)->run($_SERVER['argv']));