Lidando com problemas de caminho do PHPUnit
-
28-09-2020 - |
Pergunta
Estou recebendo o seguinte erro quando tento executar o PHPUnit de dentro do meu aplicativo de estrutura MVC atual
Fatal error: Cannot redeclare class PHPUnit_Util_FilterIterator in /usr/local/pear/PHPUnit/Util/FilterIterator.php on line 162
Consegui rastrear esse erro em uma combinação de algumas coisas.
$paths = array();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
$paths[] = '/usr/local/pear';
set_include_path(implode(PATH_SEPARATOR, $paths));
Quando eu comento
set_include_path(implode(PATH_SEPARATOR, $paths));
PHPUnit executa testes
quando eu comentar
$paths[] = '/usr/local/pear';
eu recebo
Fatal error: require_once(): Failed opening required 'PHPUnit/Framework/TestCase.php'
Se eu comentar todos os outros diretórios, salve para o
$paths[] = '/usr/local/pear';
Recebo o erro "não é possível redeclarar".
A única maneira que eu posso correr real testes é se eu executar sem a instrução set_include_path e incluir manualmente todos os arquivos de classe que são chamados por qualquer teste de unidade individual.
Alguma ideia?
EDITAR:parece que há um conflito com a função __autoload.Ainda não tenho certeza de como resolver o problema.
Solução
bem, ao que parece, não tenho ideia de por que isso realmente funciona ...mas já que isso acontece, postarei o resultado.
$paths[] = get_include_path();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
set_include_path(implode(PATH_SEPARATOR, $paths));
Então aí está.Bem, pelo menos, aí está, caso você também tenha esse problema :)