Per unittestÈ possibile eseguire il debug dei test PhpUnit con l'opzione --process-isolation?
class SampleTest extends PHPUnit_Framework_TestCase
{
public function testBreakpoint()
{
$a = 18;
}
}
con punto di interruzione sulla linea 5 "$ a = 18;",
- Xdebug v2.1.0,
- PHPUnit 3.6.10,
- PHP 5.3.6 ,
- ubuntu 10,11
unità di esecuzione test con NO - l'opzione di isolamento del processo interrompe l'esecuzione dello script sulla riga 5, come previsto. esecuzione la stessa configurazione WITH --process-isolamento non interrompe l'esecuzione sulla linea 5.
L'opzione --process-isolamento viene eseguito ogni prova nuovo processo che utilizza 'proc_open' in funzione runJob in https://github.com/sebastianbergmann/phpunit/blob/3.6/PHPUnit/Util/PHP.php
Testato con PhpStorm 3 e vim 7 con plugin per debugger. Permette di eseguire il debug di PHPUnit stesso, ma non di testare.
Esiste un modo per eseguire il debug del processo figlio creato da PhpUnit utilizzando Xdebug? potrebbe essere Zend Debugger?
Non sono configurato per il debug in PHP Storm o VIM, quindi dovrai provarlo. Se in qualche modo si possono avere delle variabili ambientali, è possibile attivare Xdebug o ZendDebugger con quelle. Esempio Zend QUERY_STRING = "start_debug = 1 & debug_host = 10.1.1.17 & no_remote = 1 & debug_port = 10000 & debug_stop = 1"/usr/local/bin/php /var/www/test.php (http://kb.zend.com/index.php ? View = entry & EntryID = 130). Esempio di Xdebug export XDEBUG_CONFIG = "idekey = session_name" (http://xdebug.org/docs/remote). Fammi sapere se funziona. – SamHennessy
@SamHennessy sì, è esattamente il modo di eseguire il debug degli script CLI. Le variabili ambientali sono diventate esistenti dopo il comando magico 'export'. Non è un problema eseguire il debug degli script CLI. Come ho detto, posso eseguire il debug di unittests quando PHPUnit esegue testcases nello stesso thread: 'phpunit SampleTest' funziona come un incantesimo. Il 'SampleTest 'di phpunit - process-isolation non funziona. L'ultimo comando crea 2 processi: il principale PHPUnit e un figlio per ogni test. Posso eseguire il debug solo del processo principale, ma non del bambino, e questo è un problema. –
I miei presupposti erano che l'utente su cui era stato eseguito PHPUnit sarebbe lo stesso utente utilizzato dall'utente nell'operazione proc_open. Se questo è vero, allora dovrebbe attivare un'ulteriore sessione di debug. Non so se VIM o PHP Storm possano supportare più sessioni di debug. Potrebbe essere necessario impostare env vars nel tuo profilo per farlo funzionare. – SamHennessy