Come si può set-up PHP + xDebug + (x) Unità + Eclipse per lavorare con punti di interruzione nel test di unità?
-
22-08-2019 - |
Domanda
Ho provato per un bel po 'di tempo per arrivare a questo per funzionare correttamente, ma senza fortuna. Fondamentalmente, ho Eclipse (3.3) con strumenti di sviluppo PHP (PDT), e il plugin PDT XDebug così come il plugin di Eclipse SimpleTest.
Quello che voglio fare è il codice di debug invocata da unit test SimpleTest. SimpleTest può vedere chiaramente XDebug, perché posso generare i rapporti di copertura del codice, ma semplicemente non si fermerà su punti di interruzione.
Modifica : aggiungere che XDebug e punti di interruzione funzionano bene in Eclipse, non solo quando viene richiamato da SimpleTest
Qualcuno ha impostare questa funzione con successo? C'è un sacco di documenti guff in giro e poco in termini di informazioni utili.
Grazie!
Soluzione
Assicurati di avere il diritto di versione XDebug per la versione di PHP e aggiunge questo, proprio all'inizio del file php.ini:
[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
Poi fate un apachectl graceful
e un phpinfo
e assicurarsi XDebug è presente e attiva. Se lo è, tutto dovrebbe funzionare bene. So che fa per me.
modifica:. Ho risposto prima di leggere l'intera questione
prima di eseguire lo script è necessario impostare la variabile d'ambiente;
export XDEBUG_CONFIG="idekey=session_name"
Potrebbe essere possibile fare questo da PHP ma non riesco a testare questo:
putenv('XDEBUG_CONFIG="idekey=session_name"');
È necessario assicurarsi che il binario php si usa ha l'estensione XDebug caricato, sul mio sistema del modulo Apache ha, ma l'interprete di default CLI non lo fa, ma ho eseguito diverse versioni di proposito.
C'è un po ' buona documentazione qui
Altri suggerimenti
Per andare oltre alla risposta Kris', se la gestione di risorse di produzione e sviluppo sullo stesso server, E 'una buona idea di relegare le impostazioni Xdebug o ad una php include
oa quelle del vostro virtualhosts
che si occupano dev
o testing
ambienti:
-
La sintassi per VirtualHosts è
<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.(...) (...)