Wir haben etwa 180 Unit Tests implementieren webtestcase
Klasse und Tests laufen über Controller.PDO-Verbindung ist nicht geschlossen, wenn phpunit läuft mit Symfony 2.X
Wenn wir jedoch die Komponententests ausführen, öffnen sie zu viele Verbindungen zu db. Aufgrund von zu vielen aktiven TCP-Verbindungstest sind nach 120. Test fehlgeschlagen. Alle Verbindungen sind aktiv, während Tests ausgeführt werden.
In der TearDown-Funktion rufen wir die Close-Funktion des Entity Managers auf, aber es gibt nichts, das hat keinen Einfluss. Es gibt einige Klassen, die den Verweis auf das Verbindungsobjekt beibehalten, denke ich.
Da in PHP-Handbuch erwähnt über pdo Verbindung geschlossen, wenn das Objekt auf Null zugewiesen ist. Wir machen das auch, aber keine Änderungen. P.S: Unsere Komponententests sind Funktionstests. Works über Controller und integriert mit db, gibt es keine Mock-Objekte
Wo ist unser Fehler? Wie können wir das Problem beheben?
Diese meine Verbindungsparameter in config_test.yml
imports:
- { resource: config_dev.yml }
framework:
test: ~
session:
storage_id: session.storage.mock_file
web_profiler:
toolbar: false
intercept_redirects: false
doctrine:
dbal:
driver: pdo_mysql
port: 3306
host: localhost
dbname: mydb
user: myuser
password: mypass
charset: UTF8
Können wir sehen, wie Sie Ihre Verbindung innerhalb der Datei config.yml und/oder parameters.yml definieren? – j0k
@ j0k Ich habe zu Frage – GirginSoft
hinzugefügt Ich hatte ähnliches Problem vor einiger Zeit. Das Problem ist aufgrund einer nicht abgeschlossenen Transaktion aufgetreten. Verwenden Sie explizit Transaktion (ich meine Begin-Commit/Rollback)? Wenn ja, stellen Sie sicher, dass Sie es immer beenden. – Cyprian