2012-12-07 15 views

risposta

66

Se si è seguita la documentazione, è stata impostata la dipendenza phpunit/phpunit come "dev-dependency".

Se non si dispone di compositore, è necessario prima installarlo. Questo è spiegato nella documentazione: Installation *nix o Installation Windows. Se hai già installato il compositore, è una buona pratica per aggiornare il compositore alla versione più recente eseguendo il comando self-update:

$ php composer.phar self-update 

Dopo il tuo hanno fatto questo, è necessario installare tutte le dipendenze, tra cui le dipendenze dev. Questo viene fatto eseguendo il comando update con l'interruttore --dev:

$ php composer.phar update --dev 

Tutte le dipendenze sono installati nella directory vendor. PHPunit viene eseguito dalla console. Composer mette automaticamente i file della console nella directory vendor/bin. È necessario eseguire il file phpunit in là:

$ vendor/bin/phpunit -c app/ 

L'interruttore -c dice a PHPUnit di cercare il file di configurazione nella directory app, Symfony2 già impostato la configurazione corretta per eseguire tutti i test che si trovano nella directory <bundle>/Tests .

UPDATE (05-04-2013)

compositore ha cambiato la loro aggiornare/installare comandi. update installerà le dipendenze di sviluppo per impostazione predefinita e se si desidera installare dipendenze di sviluppo, è necessario utilizzare l'opzione --dev.

UPDATE (11-06-2013)

compositore è cambiata nuovamente loro comandi, il comando install anche installare le dipendenze dev.

+0

Aha ! mancato il --dev: p In ogni caso, ho il seguente errore ora: 'Attenzione: include (C: \ Programmi (x86) \ Zend \ Apache2 \ Programmi (x86) \ Zend \ Ap ache2 \ htdocs \ project1 \ vendor \ phpunit \ phpunit \ PHPUnit \ TextUI \ Command.php): impossibile aprire lo stream: Nessun file o directory in C: \ Programmi (x86) \ Zend \ Apache 2 \ htdocs \ project1 \ vendor \ compositore \ ClassLoader.php sulla riga 150. Il file esiste comunque. – Tjorriemorrie

+0

Ho continuato il mio errore qui: http://stackoverflow.com/questions/13765651/phpunits-textui-command-php-not-found – Tjorriemorrie

+0

@WouterJ Intendevi "l'aggiornamento non installa le dipendenze di dev da dafault"? – Danack

15

UPDATE (12-02-2014)

compositore e PHPUnit hanno cambiato nuovamente loro comandi. Il comando install installerà anche le dipendenze di dev:

Compositore.JSON:

... 
"require-dev": { 
    "phpunit/phpunit": "3.7.*" 
}, 

eseguirlo:

$ composer.phar update --prefer-dist --dev 

Ora è possibile eseguire i test da:

$ bin/phpunit -c /app 

Cheers,

+0

puoi digitare 'compleer.phar update --help'? – medina

4

Aggiungi come dev dipendenza, nella directory del progetto :

composer require --dev "phpunit/phpunit=4.8.*" 

Il phpunit installata può ora essere eseguito con:

./vendor/bin/phpunit 
+2

Ora puoi usare la versione: '5.3. *'. – danger89

4

Per Symfony 3 aggiungere "phpunit/phpunit": "5.4.*" alla sezione "require-dev" nelle composer.json ed eseguire i test dalla directory principale applicazioni con:

./vendor/bin/phpunit tests 
+0

Vuoi dire compositore.son, naturalmente. :) – Tegran

+0

Grazie, risolto quello. :) –

+0

Ovviamente se stai usando un layout di progetto legacy, il comando sarebbe qualcosa di simile ./vendor/bin/phpunit src/AppBundle/Test – Acyra

20

Che dire più modo di compositore?

composer exec phpunit 

Può essere utilizzato per ogni file binario nella directory fornitore/bin.

5

mi piace definire uno script all'interno di composer.json, in modo che io posso solo correre:

$ composer test 
# ... runs phpunit 

Per farlo, ho bisogno di modificare composer.json a contenere una voce come questa:

"scripts": { 
    "test": [ 
     "phpunit tests/*.php" 
    ] 
} 
Problemi correlati