Question

Je reçois l'erreur suivante lorsque j'essaie d'exécuter PHPUnit de mon application MVC actuelle

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

    set_include_path(implode(PATH_SEPARATOR, $paths));

PHPUNIT exécute des tests

Quand je commente

$paths[] = '/usr/local/pear';

Je reçois

Fatal error: require_once(): Failed opening required 'PHPUnit/Framework/TestCase.php' 

Si je commencez tous les autres répertoires, économisez pour le

$paths[] = '/usr/local/pear';

Je reçois l'erreur "Impossible de redéclaré".

La seule façon que je puisse arriver à exécuter les tests réels est si je cours sans l'instruction SET_InClude_Path et incluez manuellement tous les fichiers de classe appelés par tout test individuel.

Des idées?

EDIT: Il semble qu'il y a un conflit avec la fonction __AutoLoad.Je ne sais toujours pas trop comment aborder la question.

Était-ce utile?

La solution

Bien qu'il s'avère, je ne sais pas pourquoi cela fonctionne réellement ... mais comme ça fait, je posterai le résultat.

$paths[] = get_include_path();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
set_include_path(implode(PATH_SEPARATOR, $paths));

Alors voilà.Au moins au moins, vous y allez dans le cas où vous avez également eu ce problème aussi :)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top