Come si può set-up PHP + xDebug + (x) Unità + Eclipse per lavorare con punti di interruzione nel test di unità?

StackOverflow https://stackoverflow.com/questions/880479

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!

È stato utile?

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.(...)
    
      (...)
    
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top