Tratar con problemas de ruta de phpunit
-
28-09-2020 - |
Pregunta
Estoy recibiendo el siguiente error cuando intento ejecutar phpunit desde mi aplicación de marco MVC actual
Fatal error: Cannot redeclare class PHPUnit_Util_FilterIterator in /usr/local/pear/PHPUnit/Util/FilterIterator.php on line 162
He logrado rastrear ese error a una combinación de algunas cosas.
$paths = array();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
$paths[] = '/usr/local/pear';
set_include_path(implode(PATH_SEPARATOR, $paths));
cuando comento
set_include_path(implode(PATH_SEPARATOR, $paths));
PHPUnit ejecuta pruebas
cuando comento
$paths[] = '/usr/local/pear';
entiendo
Fatal error: require_once(): Failed opening required 'PHPUnit/Framework/TestCase.php'
Si comento todos los demás directorios, guarde para el
$paths[] = '/usr/local/pear';
Obtengo el error "No se puede volver a comprar".
La única forma en que puedo ir a ejecutar las pruebas reales es si se ejecuto sin la declaración SET_INCLUDE_PATH y incluya manualmente todos los archivos de clase que se llaman por cualquier prueba de unidad individual.
¿Alguna idea?
Editar: Parece que hay un conflicto con la función __autoload.Todavía no estoy seguro de cómo abordar el problema.
Solución
Bueno, como resulta, no tengo idea de por qué esto funciona realmente ... pero como lo hace, publicaré el resultado.
$paths[] = get_include_path();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
set_include_path(implode(PATH_SEPARATOR, $paths));
así que ahí vayas.Bueno, al menos, allí va en el caso de que también tiene este problema también :)