Ich versuche, meine symfony2-Anwendung mit PHPUnit zu testen. Ich habe ein Projekt, in dem alles wie erwartet funktioniert, aber bei meinem anderen Projekt habe ich das seltsame Verhalten, dass PHPUnit die Ausführung der Testsuite gegen Ende aller Tests entweder zufällig beendet und die Tests nach Abschluss der Testsuite und Schreiben des Codes neu startet oder neu startet Abdeckung. In anderen Fällen läuft es normal.
Hier sind einige Ausgaben, um sichtbar zu machen, was gerade passiert (Test wird immer wieder neu gestartet):
PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
...........PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
...PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
............PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
............PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
..................
Time: 01:03, Memory: 43.00Mb
OK (83 tests, 145 assertions)
Writing code coverage data to XML file, this may take a moment.
Generating code coverage report, this may take a moment.
Hier ist ein Beispiel für den Neustart der Test Suite nach Ausführung aller Tests:
PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
..................
Time: 01:29, Memory: 53.25Mb
OK (83 tests, 145 assertions)
Writing code coverage data to XML file, this may take a moment.
Generating code coverage report, this may take a moment.
PHPUnit 3.6.10 by Sebastian Bergmann.
Configuration read from C:\workspace\cllctr\app\phpunit.xml
................................................................. 65 / 83 ( 78%)
............PHPUnit 3.6.10 by Sebastian Bergmann.
Da mein anderes Projekt ohne Probleme ausgeführt wird, muss ein Problem in meinem Code vorliegen. Aber ich kann nicht herausfinden, was dieses Verhalten möglicherweise auslöst! Die Protokolle zeigen nichts Unerwartetes / Seltsames.
BEARBEITEN
Gestern ist mir etwas Seltsames aufgefallen: Ich habe mich aus nicht verwandten Gründen entschlossen, von MongoDB zu MySQL zu wechseln. Nach Abschluss des Übergangs werden alle Tests problemlos ausgeführt. Ich habe es oft versucht und kann es nicht mehr reproduzieren. Da dies nur bei meinen Funktionstests passiert ist, denke ich, dass das Problem meine WebTestCase-Klasse war, die einige Befehle zum Löschen und Wiederherstellen der Datenbank ausführt. Vielleicht kann jemand, der auch MongoDB verwendet, dieses Verhalten reproduzieren?
quelle
--verbose
Option beim Ausführen zu verwenden.phpunit --debug
zeigt Ihnen, welcher Test ausgeführt wird.phpunit --testdox
zeigt Ihnen die Testnamen - anstelle von Punkten.Antworten:
Ich würde vorschlagen, die Verbindungslimits und Pools der Datenbankserver zu überprüfen.
Wenn Sie beispielsweise ein maximales Limit von 100 Verbindungen haben und einige der Tests Verbindungen offen lassen ("Lecks"), würden Sie dort die Limits erreichen.
Das würde auch erklären, warum es manchmal funktioniert und manchmal an die Grenze stößt, da Ihre Datenbank andere Aufgaben gleichzeitig erledigen kann. Manchmal stoßen Sie an die Decke, manchmal, wenn nichts anderes ausgeführt wird, können Sie Ihre Tests erfolgreich ausführen.
Suchen Sie nach dauerhaften Netzwerkverbindungen und anderen externen Ressourcen.
quelle