samedi, janvier 9 2010, 10:04
Incompatibilité Phing 2.3.3 et PHPUnit 3.4.x+
Par Olivier Hoareau - Trucs et astuces - Lien permanent
Phing, le port de Ant (java) en PHP, propose des tasks (balises xml) permettant d'exécuter des classes PHPUnit (tests unitaires en PHP). La version stable de Phing n'est maintenant plus compatible avec la dernière version stable de PHPUnit (3.4.3 actuellement) voir avec la branche 3.4.x, et on obtient l'erreur :
[PHP Error] require_once(PHPUnit/Util/Log/XML.php): failed to open stream: No such file or directory [line 22 of C:\Program Files\PHP\PEAR\phing\tasks\ext\phpunit\phpunit3\XMLPHPUnit3ResultFormatter.php]
Voici une piste pour y remédier :
Le problème vient du fait que les nouvelles versions de PHPUnit (a priori depuis la branche 3.4.x) ont supprimé notamment le fichier PHPUnit/Util/Log/XML.php suite à du refactoring. Ce fichier étant inclus par une classe de phing, le plantage est donc compréhensible (voir le ticket de rapport de bug).
Il existe 2 solutions :
- remplacer l'inclusion de XML.php par JUnit.php (telle que décrit dans le ticket de rapport de bug)
- mettre à jour la version de phing pour utiliser la branche 2.4.x encors en version Release Candidate (2.4.0RC3 actuellement).
Personnellement je préconise la deuxième solution, plus pérenne et plus propre. Voici comment faire :
pear upgrade --alldeps --force phing/phing-2.4.0RC33
(certaines dépendences de package seront mises à jour notamment VersionControl_SVN qui devra être à minima en version 0.3.3)
Vous devez ensuite remplacer toutes les utilisations de tasks "phpunit2" ou "phpunit2report" par "phpunit" dans vos build.xml.
aucun commentaire