php testing xdebug codeception

php - Depuración de pruebas de Codeception con Xdebug



testing (6)

Alias ​​podría ser utilizado

alias xon="export XDEBUG_CONFIG=/"profiler_enable=1/"" alias xoff="export XDEBUG_CONFIG=/"profiler_enable=0/""

Y luego podríamos usar xon en la consola para iniciar la depuración y xoff para finalizar.

http://theaveragedev.com/debug-cli-scripts-with-phpstorm

Escribí algunas pruebas API con ApiGuy de Codeception. Ahora quiero establecer puntos de interrupción en mi PhpStorm 7 para la depuración de pruebas, pero no tengo idea de cómo iniciar la sesión de depuración después de la $ vendor/bin/codecept run . Sé sobre la opción --debug , pero no es exactamente lo que quiero.

¿Tiene alguna idea? ¡Gracias por adelantado!


No creo que realmente necesite un script adicional para depurar Codeception al menos en PHPStorm. No creo que lo harías en otros IDEs tampoco. Puede configurar codecept.phar como el "Archivo" en la configuración que se muestra en la respuesta de Maciej Sz y ejecutarlo como lo haría con cualquier otro script de línea de comandos de PHPStorm, Eclipse, etc.

En PHPStorm creas una nueva configuración de depuración de PHP Script que apunta a codecept.phar como el "Archivo". Establezca los argumentos para que sean una configuración de ejecución básica (p. Ej., La aceptación de ejecución --grupo grupogrupo --env mienv), pero dígale "Mostrar esta página" cada vez que quiera depurar. Luego puede cambiar qué prueba / grupo / entorno está ejecutando cada vez para ejecutar su prueba con puntos de interrupción.

Cuando hace clic en el botón de depuración desde la ventana emergente, la prueba de aceptación comienza en la consola del depurador.

La ejecución inicial que llega a un punto de interrupción estará en la fase de validación, donde Codeception intenta asegurarse de que el código se ejecute antes de ejecutarlo. La segunda ejecución será cuando la prueba realmente esté utilizando Selenium o lo que haya configurado. Esto le permitirá ver lo que hay en la memoria, repasar las cosas de manera controlada, etc.


Otra forma es configurar PhpStorm, como se indicó anteriormente, pero establecer bin/cept para Archivo , run para Argumentos y la raíz de su proyecto como Directorio de trabajo personalizado .


Sugeriría usar

php -dxdebug.remote_enable=1 -dxdebug.remote_autostart=On -dxdebug.idekey=YOUR_KEY -dxdebug.remote_host=YOUR_IP ../vendor/bin/codecept run


Tuve el mismo problema. Parece que Codeception solo viene con la herramienta de comandos, que no se puede depurar. Finalmente terminé escribiendo mi propio corredor de PHP, que es básicamente una copia del ejecutable del comando codeception .

En realidad, todo lo que tendría que hacer en Linux es eliminar el shebang de la herramienta de codeception para ejecutarlo como un script PHP. Pero dado que es mucho menos probable que los comandos distintos de la codeception run sean un tema de depuración, he preparado un script PHP separado. Contiene solo la opción de run :

<?php /** * Codeception PHP script runner */ require_once dirname(__FILE__).''/../vendor/codeception/codeception/autoload.php''; use Symfony/Component/Console/Application; $app = new Application(''Codeception'', Codeception/Codecept::VERSION); $app->add(new Codeception/Command/Run(''run'')); $app->run();

Después de hacer esto, puede configurar su script de depuración como cualquier otro en PHPStorm . Así que vaya a Select Run/Debug Configuration > Edit Configurations... :

Ahora Add New Configuration (Alt + Inssert) > PHP Script . Luego nombre la configuración de ejecución y seleccione el archivo que creó anteriormente. Recuerda agregar el argumento de run :

Y eso es. Ahora puede ejecutar sus pruebas desde IDE y depurarlas como scripts normales.


Utilizo el archivo codecept.phar y encuentro que este funciona. solo escriba este comando en la consola y luego ejecute las pruebas de codecepción:

export XDEBUG_CONFIG="idekey=session_name remote_host=localhost profiler_enable=1"