2015-01-23 9 views
15

Ich verwende Homestead, um meine Laravel-Anwendung zu bedienen. Ich versuche PHPUnit auszuführen. Entsprechend der docs:Ausführen von PHPUnit in Laravels Homestead

Eine Beispiel-Testdatei befindet sich im Verzeichnis app/Tests. Nach Installieren Sie eine neue Laravel-Anwendung, führen Sie einfach phpunit auf der -Befehlszeile, um Ihre Tests auszuführen.

Nun, wenn ich phpunit in meinem Projekt root "einfach laufen" (im Homestead Umgebung) bekomme ich diese:

Das Programm 'phpunit' nicht installiert ist zur Zeit.

Muss ich PHPUnit dann separat installieren? Die Dokumentation erwähnt es nicht. Was mache ich falsch?

Antwort

22

Sie können es global mit dem System installieren.

composer global require phpunit/phpunit 

Wenn Sie jedoch für verschiedene Projekte verschiedene Versionen benötigen, können diese Probleme verursachen.

Die alternative Option besteht darin, die installierte Version als Teil Ihrer Abhängigkeiten zu verwenden, indem Sie auf den Pfad zu Ihrem Verzeichnis vendor verweisen.

./vendor/bin/phpunit 

Sie könnten sogar einen Alias ​​Ihre Aliase Datei in Ihrem ~/Homestead Verzeichnis hinzuzufügen. Auf diese Weise verwenden Sie immer die phpunit-Version, die mit Ihren Projektabhängigkeiten installiert ist.

alias phpunit=./vendor/bin/phpunit 

Sie müssen die Heimstätte Box neu starten Verwendung des Alias ​​zu machen.

+0

Vielen Dank. ll klar und funktioniert. – lesssugar

+2

Für mich ist diese phpunit v5.1 installiert, die momentan nicht mit Laravel kompatibel ist. Verwenden Sie 'composer global require" phpunit/phpunit = 4.4. * "', Um die Version anzugeben. – Mastergalen

7

Sie können es installieren global mit:

$ composer global require "phpunit/phpunit=4.4.*" 
# then use 
$ phpunit 

oder Sie können es mit Ihrem lokalen Komponisten verwenden:

$ composer require "phpunit/phpunit=4.4.*" 
# then 
$ vendor/bin/phpunit 
+0

Der zweite Ansatz funktionierte nicht für mich; phpunit sagt 'Sie müssen die Projektabhängigkeiten mit den folgenden Befehlen einrichten: ...'. Die globale Installation funktioniert jedoch. – duma

2

Da es sich um ein Paket für die Entwicklung erforderlich ist, Laravel PHPUnit liefern (erfordern-dev Abschnitt Komponist), sollten Sie es in Herstellers Ordner:

$ your_app/vendor/bin/ 

Sie können den Befehl ausführen von der Wurzel Ihres App-Ordners durch Eingabe von:

$ vendor/bin/phpunit 

Ich hoffe, es wird helfen!