Je reçois l'erreur suivante lorsque je tente de lancer PHPUnit à partir de mon application actuelle de framework MVCTraiter avec le chemin de PHPUnit émet
Fatal error: Cannot redeclare class PHPUnit_Util_FilterIterator in /usr/local/pear/PHPUnit/Util/FilterIterator.php on line 162
J'ai réussi à tracer cette erreur à une combinaison de quelques choses.
$paths = array();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
$paths[] = '/usr/local/pear';
set_include_path(implode(PATH_SEPARATOR, $paths));
Quand je commente sur
set_include_path(implode(PATH_SEPARATOR, $paths));
exécute des tests PHPUnit
quand je en commentaire
$paths[] = '/usr/local/pear';
Je reçois
Fatal error: require_once(): Failed opening required 'PHPUnit/Framework/TestCase.php'
Si je commenter tous les répertoire, sauf pour le
$paths[] = '/usr/local/pear';
Je reçois l'erreur « ne peut pas redéclarer ». La seule façon d'exécuter tests réels est de savoir si je cours sans l'instruction set_include_path et d'inclure manuellement tous les fichiers de classe qui sont appelés par un test unitaire individuel.
Des idées?
EDIT: Il semble qu'il y ait un conflit avec la fonction __autoload. Je ne suis toujours pas sûr de savoir comment résoudre le problème.
Cela devine cela fonctionne parce que le chemin d'accès aux fichiers phpunit est dans votre chemin d'inclusion et ma fusion et ne pas écraser l'ancien chemin d'inclusion php est capable de trouver les fichiers :) (Et ce chemin est peut-être défini au moment de l'exécution ou différent de/usr/local/pear à cause de 2 installations ou quelque chose :)) – edorian