Sie versuchen zum ausführen von PHPUnit mit einem Konfigurations-XML-Datei Ergebnisse in Ausnahme
Ich versuche (seit geraumer Zeit, mit Hilfe von fellas auf die PHP-chat-Raum) zu erfolgreich integrieren PHPUnit mit PhpStorm.
Ich habe die phpunit.xml
- Datei wie folgt:
<?xml version="1.0" encoding="UTF-8"?>
<phpunit
backupGlobals = "false"
backupStaticAttributes = "false"
colors = "true"
convertErrorsToExceptions = "true"
convertNoticesToExceptions = "true"
convertWarningsToExceptions = "true"
processIsolation = "false"
stopOnFailure = "false"
syntaxCheck = "false"
bootstrap = "bootstrap.php" >
<testsuites>
<testsuite name="Lamed Test Suite">
<directory>Custom/*</directory>
</testsuite>
</testsuites>
</phpunit>
Konfiguriert und PHP storm erfolgreich zum Lesen aus dieser Datei.
Das problem ist, ich bekomme die folgende Fehlermeldung in PhpStorm die Konsole bei der Ausführung des tests:
D:\Websites\php\php.exe C:\fakepath\ide-phpunit.php --bootstrap D:\Websites\htdocs\lamed\tests\boostrap.php --configuration D:\Websites\htdocs\lamed\tests\phpunit.xml
Testing started at 23:51 ...
Fatal error: Uncaught exception 'PHPUnit_Framework_Exception' with message 'Neither "Lamed Test Suite.php" nor "Lamed Test Suite.php" could be opened.' in D:\Websites\php\pear\PHPUnit\Util\Skeleton\Test.php:100
Stack trace:
#0 D:\Websites\php\pear\PHPUnit\TextUI\Command.php(157): PHPUnit_Util_Skeleton_Test->__construct('Lamed Test Suit...', '')
#1 C:\Users\Dor\AppData\Local\Temp\ide-phpunit.php(95): PHPUnit_TextUI_Command->run(Array, true)
#2 C:\Users\Dor\AppData\Local\Temp\ide-phpunit.php(434): IDE_PHPUnit_TextUI_Command::main()
#3 {main}
thrown in D:\Websites\php\pear\PHPUnit\Util\Skeleton\Test.php on line 100
Process finished with exit code 255
Es ist natürlich zu Lesen, dass aus der name=
- Attribut auf die testsuite
element. Die Frage ist, warum?
UPDATES
- Ich bin mit Windows Sieben x64 SP1 und PHPStorm 4.0.3. PHPUnit-version ist 3.6.12.
- Eingabe
phpunit -c "D:\Websites\htdocs\lamed\tests\phpunit.xml"
in der CLI gibt tatsächlich die gleichen Ergebnisse. - Meine
Custom
Verzeichnis befindet sich im selben Ordner wie diephpunit.xml
Datei.
Ich bin ratlos. Würde schätzen jede Art von Hilfe.
- Ich schau das später nochmal nach dem zurücksetzen mein Gehirn. Beachten Sie, dass ich entwickle auf Linux und ich habe gerade realisiert, Sie sind noch in der Entwicklung auf Windows, aber das sollte nicht wirklich einen Unterschied machen.
- Denken Sie wieder. Ich kann nicht laufen ALLE phpunit tests durch eine Konfigurations-Datei auf Windows 7. Ich habe nicht erkannt, aber entweder.
- Interessant. Ich habe keine Windows-Kiste...sonst würd ich testen.
- Sie brauchen nicht zu konfigurieren, dass. PHPStorm handhabt es für Sie, wenn Sie brauchen, um benutzerdefinierte setup-XML-oder bootstrap-Dateien, gibt es eine option: chat.stackoverflow.com/transcript/11?m=4825091#4825091
- Scheint so! Läuft
phpunit -c "D:\Websites\htdocs\lamed\tests\phpunit.xml"
gab mir die gleiche Meldung. - Ich gab die genaue Fehlermeldung, mein OS und meine Verzeichnis Struktur. Was sonst hätten Sie mich hinzufügen?
- Ist das besser? 🙂
- Versuchen Sie, einen Testfall aus der Befehlszeile. Es scheint PHPUnit ist nicht zu finden, der Ihre tests. Werden Sie genannt, wie
FooTest.php
? - Dass tatsächlich das problem gelöst. 😮
Du musst angemeldet sein, um einen Kommentar abzugeben.
Drop die
/*
von der<directory>
element. Dieses element ist text-content sollte auf ein Verzeichnis zeigen,—nicht eine Datei glob.Sehen die PHPUnit-Dokumentation für mehr details auf die Angabe einzelner Dateien und Integration patterns.
Standardmäßig alle Dateien mit der Endung
Test.php
(z.B.UserTest.php
) geprüft werden, die für die Testfälle. Wenn Sie noch eine andere Benennungskonvention können Sie entweder wechseln oder hinzufügen vonsuffix
Attribut. Zum Beispiel, wenn Sie den Namen Ihres tests wieUser.test.php
verwenden:Object_Freezer
oderObject/Freezer
).Test
, einmal habe ich, dass es das problem gelöst. Danke 🙂Was Ihr erlebt, ist ein fallback. Es sieht aus wie Ihre testsuite ist leer (und es gibt keine anderen zusätzlichen nicht-leere testsuite als auch).
In diesem Fall PHPUnit wird auch versuchen, öffnen Sie einfach etwas passendes, was nicht funktioniert. Sie sehen dann eine Fehlermeldung.
Wenn Sie nur eine leere testsuite, Sie sehen Ausnahme mit dem Namen der testsuite und php Hinzugefügt, die für die versuchen Sie es.
Wenn du mehr als eine leere testsuite und keine funktionierende testsuite, werden Sie sehen und Fehler, über die nur php, kein name Hinzugefügt.
Wenn Sie mindestens eine funktionierende testsuite aber eine oder mehrere leere testsuites, sehen Sie einen kurzen Bericht für jedes leere testsuite ist aber kein Fehler:
Wenn ich Schreibe, dass dies ein fallback muss es nicht bedeuten, dass dieses Verhalten beabsichtigt ist PHPUnit. Sehen Sie den Fehler in deinem Fall okay ist, weil, bevor Sie beginnen mit tests, benötigen Sie mindestens einen laufen hast. Und, bevor Sie mit der Konfiguration von testsuites, die gleichen.
Beheben das zugrunde liegende problem, dass der test fehlt, und der Fehler geht Weg.
Den Platzhalter
*
wie bereits in der anderen Antwort - ich bin mir sicher, dass es richtig ist, um es nicht - spielt keine Rolle bei deinem problem, soweit ich sehen konnte.lamed.php
zulamedTest.php
sonst PHPUnit wird nicht erkannt und die testsuite ist noch leer (der erste Fall in der Liste in meiner Antwort).Hatte das gleiche problem geändert der Wert für directory den absoluten Pfad anstatt eines relativen Pfades und es funktionierte.
Zum Beispiel habe ich geändert
tests
in
C:\eclipse\Workspace\testweb
Schade, ich musste gehen durch eine Menge von nicht-Informationen-und dies nicht in der Dokumentation erwähnt, weder wird es dokumentiert, wie Sie die command-line-interface mit Konfigurations-xml-Datei.
phpunit -c tests/all.xml
Den php-test-Dateien haben am Ende mit testen, wie gut wie myTest.php auch, wenn Sie das hinzufügen von Datei-Elemente
C:\eclipse\Workspace\testweb\tests\classes\something.php
nicht funktionieren würde aber
C:\eclipse\Workspace\testweb\tests\classes\somethingtest.php
funktionieren würde