2012-03-09 5 views
5

Ho sfogliato problemi simili su SO, ma senza risultato. Sto eseguendo PHP 5.3.6 e phpunit versione 3.6.10. Quando si tenta di eseguire un semplice test:PHPUnità non riuscita apertura file richiesto

require_once 'PHPUnit/Framework.php'; 

class UserTest extends PHPUnit_Framework_TestCase { 
} 

ricevo il seguente errore:

PHP Fatal error: require_once(): Failed opening required 'PHPUnit/Framework.php' 
(include_path='.:/Users/username/pear/share/pear:/usr/lib/php/pear/:/Users/username/pear/share/pear/PHPUnit') in ... 

Durante la reinstallazione PHPUnit, non sono sicuro se la posizione di installazione è stato duplicato, ma sembra che durante l'esecuzione which phpunit, il percorso è: /usr/bin/phpunit. Tuttavia, sembra essere installato anche in /Users/user/pear/bin/phpunit. Ho provato ad aggiornare tutti i canali e reinstallare PEAR e PHPUnit, ma il problema esiste ancora. Sono in esecuzione su OSX Lion. Qualsiasi aiuto sarebbe molto apprezzato.

+0

Hai scritto un errore: ''PHPUit/Framework.php'' - manca' n'. – hakre

+0

Prima di reinstallare PEAR vorrei * leggere * prima il messaggio di errore. Ti dice cosa è andato storto. Te l'ho anche detto nel commento sopra. – hakre

+1

@hakre - scusate, quello era un errore di battitura in me che digitava l'errore (al contrario di copiare e incollare). L'errore è che PHPUnit non richiede più di richiedere esplicitamente la classe Framework. In qualche modo stavo leggendo la vecchia documentazione, e ero confuso sul motivo per cui non funzionava. Grazie per l'aiuto. – naivedeveloper

risposta

15

è sufficiente rimuovere la linea di

require_once 'PHPUnit/Framework.php'; 

e tutto dovrebbe funzionare.

Non hai bisogno di qualsiasi cosa include/require PHPUnit legati dal momento che (almeno) PHPUnit 3.6 più e non è possibile includere il file perché non esiste più nella distribuzione.

Il corridore phpunit si prenderà cura di bootstrap tutto ciò che è necessario per PHPUnit :)

+2

Grazie, è quello che sto vedendo ora. In qualche modo, a quanto pare, sono incappato in qualche vecchia documentazione o qualcosa del genere sul sito PHPUnit, perché richiedeva quel file. Grazie per l'aiuto. – naivedeveloper

+0

Hahahahaa. È davvero una bella risposta. Dopo aver speso un'ora per risolvere questo problema =) +1 =)) –

1

Come altri hanno sottolineato, Framework.php non è necessario più.

Ma in ogni caso se si hanno già troppi file di test scritti e con la dichiarazione di inclusione, risolverli diventerà un compito ingombrante. Che era il caso che dovevo affrontare.

Se è necessaria una soluzione rapida, creare un file Framework.php vuoto. Questo risolverà il problema. Crea un file vuoto denominato Framework.php nella tua directory PHPUnit. (ad esempio: at: /usr/share/php/PHPUnit/Framework.php).

sudo touch /usr/share/php/PHPUnit/Framework.php