3 minute read

Motivación

Aunque no queramos, a veces la única forma de saber lo que está pasando es arrancar el debugger y seguir el flujo de proceso para descubrir sus secretos. Montamos los tests, y por alguna razón algo se mos resiste…

En este caso vamos a activar el debug y configurar el PhpStorm para que pueda lanzar los tests en una instancia docker y debugar lo que stá sucediendo.

Para la configuración que voy a usar cuento con que las siguientes premisas se cumplen:

Si no lo tienes, puede que los siguientes artículos te ayuden a conseguirlo.(TODO LINKAR ARTÍCULOS SOBRE DOCKER)

  • Usamos Docker
  • Tenemos un docker-compose.yml configurado.
  • La imagen de Docker tiene el Xdebug instalado.

Explicación paso a paso

1. Informar de la versión de PHP a utilizar en docker.

Buscamos Settings/Languages and frameworks/PHP y le configuramos el CLI interpeter

debug phpstorm with docker debug phpstorm with docker debug phpstorm with docker

En este paso, sólo le tenemos que indicar a qué servicio de Docker queremos conectarnos. Con lo que si ya lo hemos hecho con anterioridad para otro proyecto, podemos reutilizar el existente en lugar de darle al New y configurar ora conexión.

debug phpstorm with docker debug phpstorm with docker debug phpstorm with docker

Si todo ha ido bien, veremos la versión de PHP del Docker y lo más importante… si tiene el xdebug activado.

debug phpstorm with docker

Y ya podemos agregarlo como intérprete.

debug phpstorm with docker

2. Configurar el Debug de PhpStorm

Dentro del árbol de menú de settings de antes, existe un sección para poder configurar el debug de PhpStorm. sólo tenemos que agregar un Debug de Tipo PHPUnit remoto y escoger el servicio web que acabamos de configurar.

debug phpstorm with docker debug phpstorm with docker debug phpstorm with docker

Ahora debemos indicarle la ruta desde el punto de vista del servidor donde puede encontrar el script que usaremos para lanzar el PHPUnit, y al refrescar debería encontrar la versión de PHPUnit del servidor.

debug phpstorm with docker debug phpstorm with docker

Para terminar, debemos indicarle el fichero de configuración que usaremos para lanzar el PHPUnit.

debug phpstorm with docker

3. Configurar el launcher de tests de PHPStorm

Una vez llegado aquí configuramos el launcher.

debug phpstorm with docker debug phpstorm with docker debug phpstorm with docker debug phpstorm with docker

Y ya podemos debugar y lanzar los tests con PHPStorm!!!!

Advertencia para PHPStorm anteriores a 2019 si usas Docker

En versiones de PHPStorm 2018 y anteriores, el hecho de lanzar los tests hace que el contenedor web que esté en marcha muera, ya que phpstorm lo cierra y lo lanza para ejecutar los tests. Esto es un problema si estamos ejecutando la aplicación y en paralelo queremos llamar a los tests desde PHPstorm. En versiones 2019 ya hay una forma de decirle que se conecte al contenedor si ya esta levantado.

debug phpstorm with docker

Advertencia si usas php-fpm con docker

En php-fpm hay que cambiar de estrategia con un par de cambios. Se explica en este post.

comments powered by Disqus