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.

Foi útil?

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 :)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top