Wie können Sie PHP + xDebug + (x) Unit + Eclipse Stützpunkte in Unit-Tests zu arbeiten Set-up?
-
22-08-2019 - |
Frage
Hat schon seit geraumer Zeit versucht, dies zu erhalten, richtig zu arbeiten, aber ohne Glück. Grundsätzlich habe ich Eclipse-(3.3) mit PHP Development Tools (PDT) und der PDT XDebug Plugin sowie die Simple Eclipse-Plugin.
Was ich tun möchte, ist Debug-Code aufgerufen durch Simple Unit-Tests. Simple kann deutlich sehen, XDebug, weil ich Code-Coverage-Berichte erstellen kann, aber es wird einfach nicht an Haltepunkten zu stoppen.
Bearbeiten : Sollte hinzufügen, dass XDebug und Haltepunkte in Eclipse funktionieren, nur nicht, wenn sie von Simple aufgerufen
Hat jemand erfolgreich eingestellt? Es gibt eine Menge von guff docs herum und wenig in der Art von nützlichen Informationen.
Danke!
Lösung
Stellen Sie sicher, dass Sie die richtige XDebug Version für Ihre Version von PHP haben und fügen Sie diese am Anfang Ihrer php.ini-Datei:
[xdebug]
zend_extension=full_path_to_your_xdebug.so
xdebug.default_enable=On
xdebug.remote_enable=On
xdebug.remote_handler="dbgp"
xdebug.remote_host="localhost"
xdebug.remote_port=9000
Dann ein apachectl graceful
tun und ein phpinfo
und stellen Sie sicher, XDebug vorhanden und aktiv ist. Wenn ja, sollte alles funktionieren. Ich weiß, dass es für mich.
bearbeiten. Ich antwortete, bevor die gesamte Frage lesen
, bevor Sie das Skript ausführen Sie die Umgebungsvariable setzen sollte;
export XDEBUG_CONFIG="idekey=session_name"
Es könnte möglich sein, dies von PHP zu tun, aber ich kann das nicht testen:
putenv('XDEBUG_CONFIG="idekey=session_name"');
Sie sollten sicherstellen, dass die PHP-Binary Sie die XDebug Erweiterung verwenden geladen hat, auf meinem System der Apache-Modul hat, aber das Standard-CLI-Interpreter nicht, aber ich laufe verschiedene Versionen absichtlich.
Es gibt einige gute Dokumentation hier
Andere Tipps
Um weiter zu gehen auf Kris' Antwort: Wenn Sie Ihre Produktions- und Entwicklungsumgebungen auf demselben Server verwalten, ist es eine gute Idee, Ihre xdebug Einstellungen verbannen entweder zu einem php include
oder denen Ihrem virtualhosts
, die gewidmet sind dev
oder testing
Umgebungen:
-
Die Syntax für Virtual ist
<virtualHost ....> (...) # Xdebug ENV php_flag xdebug.auto_trace on php_flag xdebug.idekey session_name php_flag xdebug.profiler_enable_trigger 1 php_flag xdebug.(...) (...)