Para unittest¿Es posible depurar las pruebas de PhpUnit con la opción --process-isolation?
class SampleTest extends PHPUnit_Framework_TestCase
{
public function testBreakpoint()
{
$a = 18;
}
}
con punto de interrupción en la línea 5 "$ a = 18;",
- v2.1.0 Xdebug,
- PHPUnit 3.6.10,
- PHP 5.3.6 ,
- ubuntu 10,11
unidad de Ejecución la prueba con NO --process-isolation option detiene la ejecución del script en la línea 5, como se esperaba. Ejecución de la misma configuración con la opción --process aislamiento no se detiene la ejecución en la línea 5.
La opción --process aislamiento ejecuta todas las pruebas en el nuevo proceso utilizando 'proc_open' en función de runJob en https://github.com/sebastianbergmann/phpunit/blob/3.6/PHPUnit/Util/PHP.php
Probado con PhpStorm 3 y vim 7 con el plugin de depuración. Permite depurar PHPUnit, pero no testcases.
¿Hay alguna forma de depurar el proceso secundario creado por PhpUnit usando Xdebug? puede ser Zend Debugger?
No estoy configurado para la depuración en PHP Storm o VIM, por lo que tendrá que probar esto. Si de alguna manera puede tener salidas de variables ambientales, podría disparar Xdebug o ZendDebugger con esas. Ejemplo 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). Xdebug example export XDEBUG_CONFIG = "idekey = session_name" (http://xdebug.org/docs/remote). Avísame si eso funciona. – SamHennessy
@SamHennessy sí, es exactamente la manera de depurar las secuencias de comandos CLI. Las variables ambientales se hicieron existentes después del comando mágico 'export'. No es un problema depurar scripts CLI. Como mencioné, puedo depurar pruebas de unidad cuando PHPUnit ejecuta testcases en el mismo hilo: 'phpunit SampleTest' funciona como un amuleto. El 'phpunit --process-isolation SampleTest' no funciona. El último comando crea 2 procesos: la PHPUnit principal y un elemento secundario para cada prueba. Solo puedo depurar el proceso principal, pero no el niño, y eso es un problema. –
Mis suposiciones eran que el usuario con el que se ejecutó PHPUnit sería el mismo usuario que el usuario utilizado en la operación proc_open. Si eso es cierto, entonces debería desencadenar sesiones de depuración adicionales. No sé si VIM o PHP Storm pueden soportar múltiples sesiones de depuración. Es posible que necesite establecer los archivos en su perfil para que funcione. – SamHennessy