Domanda

Sto ottenendo il seguente errore quando provo a eseguire PhpUnit dall'interno della mia attuale applicazione MVC Framework

Fatal error: Cannot redeclare class PHPUnit_Util_FilterIterator in /usr/local/pear/PHPUnit/Util/FilterIterator.php on line 162
.

Sono riuscito a rintracciare quell'errore a una combinazione di alcune cose.

$paths = array();
$paths[] = '../m';
$paths[] = '../v';
$paths[] = '../c';
$paths[] = '/usr/local/pear';
set_include_path(implode(PATH_SEPARATOR, $paths));
.

Quando commento

    set_include_path(implode(PATH_SEPARATOR, $paths));
.

PhpUnit esegue Tests

Quando commento

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

ottengo

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

Se commento ogni altra directory, salvo per

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

Ottengo l'errore "Impossibile Redeclare".

L'unico modo in cui posso arrivare a eseguire effettivi test è se eseguito senza l'istruzione Set_include_path e includendo manualmente tutti i file di classe che vengono chiamati da qualsiasi singolo test unitario.

Qualche idea?

Modifica: Sembra che ci sia un conflitto con la funzione __autoload.Non sono ancora sicuro di come affrontare il problema.

È stato utile?

Soluzione

Beh come risulta, non ho idea del perché funzioni in realtà ... ma dal momento che lo fa, posterò il risultato.

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

Quindi ci sei.Bene, almeno, ci vai nel caso in cui hai effettivamente avuto questo problema :)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top