Der Versuch, PHPUnit mit einer XML-Konfigurationsdatei auszuführen, führt zu einer Ausnahme

9

Ich versuche (mit Hilfe von Freunden im PHP-Chatroom), PHPUnit erfolgreich mit PHPStorm zu integrieren.

Ich habe die phpunit.xml -Datei wie folgt eingerichtet:

%Vor%

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?

UPDATES

  • Ich verwende Windows Seven x64 SP1 und PHPStorm 4.0.3 . Die PHPUnit-Version ist 3.6.12 .
  • Die Eingabe von phpunit -c "D:\Websites\htdocs\lamed\tests\phpunit.xml" in der CLI gibt tatsächlich die gleichen Ergebnisse.
  • Mein Custom -Verzeichnis befindet sich im selben Ordner wie die phpunit.xml -Datei.

Ich bin verwirrt. Würde mich über jede Art von Hilfe freuen.

    
Madara Uchiha 07.08.2012, 20:53
quelle

3 Antworten

10

Lassen Sie die /* aus dem Element <directory> fallen. Der Textinhalt dieses Elements sollte auf ein Verzeichnis zeigen - nicht auf einen Datei-Glob.

%Vor%

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:

%Vor%     
David Harkness 08.08.2012, 07:07
quelle
1

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
  •   
    
hakre 08.08.2012 15:17
quelle
1

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

    
HMR 02.09.2012 14:26
quelle

Tags und Links