2012-12-07 16 views

Odpowiedz

66

Jeśli postępowałeś zgodnie z dokumentacją, ustawiłeś zależność phpunit/phpunit jako "zależność od aplikacji".

Jeśli nie masz kompozytora, musisz go najpierw zainstalować. Zostało to wyjaśnione w dokumentacji: Installation *nix lub Installation Windows. Jeśli masz już zainstalowany kompozytor, jest to dobra praktyka, aby zaktualizować kompozytora do najnowszej wersji, uruchamiając komendę self-update:

$ php composer.phar self-update 

Po zrobili, że trzeba zainstalować wszystkie zależności, w tym zależności Dev. Odbywa się to poprzez uruchomienie komendy update z przełącznikiem --dev:

$ php composer.phar update --dev 

Wszystkie zależności są zainstalowane w katalogu vendor. PHPunit działa z poziomu konsoli. Kompozytor automatycznie umieszcza pliki konsoli w katalogu vendor/bin. Trzeba uruchomić plik phpunit tam:

$ vendor/bin/phpunit -c app/ 

Przełącznik -c mówi PHPUnit szukać pliku konfiguracyjnego w katalogu app, Symfony2 już ustawić prawidłową konfigurację, aby uruchomić wszystkie testy, które znajdują się w katalogu <bundle>/Tests .

UPDATE (05-04-2013)

Kompozytor zmieniła ich aktualizacji/install poleceń. update zainstaluje domyślne zależności dewelopera i jeśli chcesz zainstalować zależności dewelopera, musisz użyć opcji --dev.

UPDATE (11-06-2013)

Kompozytor ponownie zmienił swoje polecenia, komenda install będzie również zainstalować zależności Dev.

+0

Aha ! spóźnił się na --dev: p W każdym razie dostaję teraz następujący błąd: 'Ostrzeżenie: dołącz (C: \ Program Files (x86) \ Zend \ Apache2 \ Program Files (x86) \ Zend \ Ap ache2 \ htdocs \ project1 \ vendor \ phpunit \ phpunit \ PHPUnit \ TextUI \ Command.php): nie powiodło się , aby otworzyć strumień: Brak takiego pliku lub katalogu w C: \ Program Files (x86) \ Zend \ Apache 2 \ htdocs \ project1 \ vendor \ composer \ ClassLoader.php on line 150. Plik istnieje jednak. – Tjorriemorrie

+0

Kontynuowałem mój błąd tutaj: http://stackoverflow.com/questions/13765651/phpunits-textui-command-php-not-found – Tjorriemorrie

+0

@WouterJ Czy miałeś na myśli "update _nie_ zainstaluje zależności dev przez dafault"? – Danack

15

UPDATE (12-02-2014)

Kompozytor i PHPUnit znowu zmienił ich poleceń. Polecenie instalacji zainstaluje również zależności od deweloperów:

Kompozytor.json:

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

Run to:

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

Teraz można uruchomić swoje testy przez:

$ bin/phpunit -c /app 

Cheers,

+0

możesz wpisać "composer.phar update --help"? – medina

4

Dodaj go jako zależność dev w katalogu projektu :

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

Zainstalowany phpunit mogą być teraz wykonywane z:

./vendor/bin/phpunit 
+2

Zamiast tego możesz teraz użyć wersji: '5.3. *'. – danger89

4

Dla Symfony 3 Dodaj "phpunit/phpunit": "5.4.*" do sekcji "require-dev" w swoim composer.json i uruchomić testy z aplikacji katalogu z:

./vendor/bin/phpunit tests 
+0

Masz na myśli oczywiście composer.json. :) – Tegran

+0

Dzięki, naprawiłem to. :) –

+0

Oczywiście, jeśli używasz starszego układu projektu, komenda byłaby podobna do ./vendor/bin/phpunit src/AppBundle/Tests – Acyra

20

Co o więcej sposobu kompozytora?

composer exec phpunit 

Może być stosowany do każdego pliku binarnego w katalogu vendor/bin.

5

chciałbym zdefiniować skrypt ciągu composer.json, tak że mogę po prostu uruchom:

$ composer test 
# ... runs phpunit 

Aby to zrobić, trzeba zmodyfikować composer.json zawierać wpis tak:

"scripts": { 
    "test": [ 
     "phpunit tests/*.php" 
    ] 
} 
Powiązane problemy