Ich versuche (mit Hilfe von Freunden im PHP-Chatroom), PHPUnit erfolgreich mit PHPStorm zu integrieren.
Ich habe die phpunit.xml
-Datei wie folgt eingerichtet:
Und konfiguriert PHP sturm erfolgreich aus dieser Datei zu lesen.
Das Problem ist, dass ich beim Ausführen der Tests in der Konsole von PhpStorm den folgenden Fehler erhalte:
%Vor% Es liest das offensichtlich aus dem Attribut name=
des Elements testsuite
. Die Frage ist, warum?
phpunit -c "D:\Websites\htdocs\lamed\tests\phpunit.xml"
in der CLI gibt tatsächlich die gleichen Ergebnisse. Custom
-Verzeichnis befindet sich im selben Ordner wie die phpunit.xml
-Datei. Ich bin verwirrt. Würde mich über jede Art von Hilfe freuen.
Lassen Sie die /*
aus dem Element <directory>
fallen. Der Textinhalt dieses Elements sollte auf ein Verzeichnis zeigen - nicht auf einen Datei-Glob.
Weitere Informationen finden Sie in der Konfigurationsdokumentation zu PHPUnit Spezifizierung einzelner Dateien und Einschlussmuster.
Standardmäßig werden alle Dateien mit der Endung Test.php
(z. B. UserTest.php
) auf Testfälle untersucht. Wenn Sie eine andere Namenskonvention haben, können Sie das Attribut suffix
entweder ändern oder hinzufügen. Wenn Sie beispielsweise Ihre Tests wie User.test.php
benennen, verwenden Sie Folgendes:
Was Sie erleben, ist ein Fallback. Es sieht so aus, als ob Ihre Testsuite leer ist (und es gibt auch keine zusätzliche, nicht leere Testsuite).
In diesem Fall wird PHPUnit auch versuchen, etwas passendes zu öffnen, was nicht funktioniert. Dann siehst du einen Fehler.
Wenn Sie nur eine leere Testsuite haben, sehen Sie die Ausnahme mit dem Namen der Testsuite und php hinzugefügt, um es zu versuchen.
%Vor%Wenn Sie mehr als eine leere Testsuite und keine funktionierende Testsuite haben, sehen Sie nur einen Fehler und einen Fehler über den PHP, es wird kein Name hinzugefügt.
%Vor%Wenn Sie mindestens eine funktionierende Testsuite, aber einen oder mehrere leere Testsuites haben, sehen Sie für jede leere Testsuite einen kurzen Bericht, aber keinen Fehler:
%Vor%Wenn ich schreibe, dass dies ein Fallback ist, darf das nicht bedeuten, dass dieses Verhalten von PHPUnit beabsichtigt ist. Es ist in Ordnung, den Fehler in Ihrem Fall zu sehen, denn bevor Sie mit Tests beginnen, müssen Sie mindestens einen ausführen. Und bevor Sie mit der Konfiguration von Testsuiten beginnen, müssen Sie dasselbe tun.
Beheben Sie das zugrunde liegende Problem, dass der Test fehlt und der Fehler verschwindet.
Der Platzhalter *
, wie in der anderen Antwort erwähnt - auch wenn ich sicher bin, dass er nicht vorhanden ist - spielt bei Ihrem Problem keine Rolle, soweit ich das sehen konnte.
Die Informationen in dieser Antwort basieren auf
- PHPUnit 3.6.7 von Sebastian Bergmann.
- PHP 5.4.5 von php.net
Hatte das gleiche Problem den Wert für das Verzeichnis in einen absoluten Pfad anstelle eines relativen Pfades geändert und es hat funktioniert. Zum Beispiel habe ich mich geändert Tests in C: \ eclipse \ Arbeitsbereich \ testweb
Schade, dass ich eine Menge von Nicht-Informationen durchgehen musste und dies wird in der Dokumentation nicht erwähnt, und es ist auch nicht dokumentiert, wie man die Befehlszeilenschnittstelle mit einer Konfigurations-XML-Datei startet.
phpunit -c Tests / all.xml
Die php-Testdateien müssen auch mit test wie myTest.php enden, auch wenn Sie Dateielemente hinzufügen C: \ eclipse \ Arbeitsbereich \ testweb \ tests \ classes \ something.php würde nicht funktionieren, aber C: \ eclipse \ Arbeitsbereich \ testweb \ tests \ classes \ somethingtest.php würde funktionieren
Tags und Links phpunit integration phpstorm