¿Cómo puede usted configurar PHP + xDebug + (x)Unidad + Eclipse para trabajar con puntos de corte en las pruebas de unidad?

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

Pregunta

Han intentado durante mucho tiempo para conseguir que esto funcione correctamente pero sin suerte.Básicamente, he Eclipse (3.3) con PHP Herramientas de Desarrollo (PDT), y el PDT XDebug plugin así como la SimpleTest el plugin de eclipse.

Lo que quiero hacer es depurar el código invocada por SimpleTest de pruebas de unidad.SimpleTest claramente se puede ver XDebug, porque puedo generar informes de cobertura de código, pero no deja de puntos de interrupción.

Editar:Debo añadir que la XDebug y los puntos de interrupción funcionar bien en eclipse, no sólo cuando se invoca por SimpleTest

Alguien tiene esta configurado correctamente?Hay un montón de disparates docs alrededor y poco en la forma de información útil.

Gracias!

¿Fue útil?

Solución

Asegúrese de que usted tiene el derecho XDebug versión para su versión de PHP y agregar esto al principio de tu php.archivo 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

A continuación, realice una apachectl graceful y un phpinfo y asegúrese de XDebug está presente y activo.Si es así, todo debería funcionar bien.Sé que lo hace por mí.

editar: Me respondió antes de leer toda la pregunta.

antes de ejecutar la secuencia de comandos debe establecer la variable de entorno;

export XDEBUG_CONFIG="idekey=session_name"

Podría ser posible hacer esto de php, pero no puedo probar esto:

putenv('XDEBUG_CONFIG="idekey=session_name"');

Usted debe asegurarse de que el binario de php que estás usando tiene la extensión XDebug cargado, en mi sistema el módulo de apache que tiene, pero el valor por defecto de la CLI intérprete no, pero puedo ejecutar diferentes versiones a propósito.

Hay algunos una buena documentación aquí

Otros consejos

Para ir más lejos en la respuesta de Kris, Si a administrar sus entornos de producción y desarrollo en el mismo servidor, es una buena idea para relegar la configuración Xdebug ya sea a un php include oa los de su virtualhosts que se dedica a dev o testing entornos:

  • la sintaxis para VirtualHosts es

    <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.(...)
    
      (...)
    
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top