Configura PHPStorm y PHPUnit usando Local

En nuestro post “Prueba tus WordPress Plugins con PHPUnit en Local” configuramos PHPUnit junto con Local para después hacer pruebas a nuestros plugins. Es una buena forma para mantener nuestro código a prueba de errores, entre otros beneficios.

Las pruebas pueden ejecutarse desde la terminal ejecutando el comando:

vendor/bin/phpunit

Sin embargo, hay algunos que desean ejecutar PHPUnit desde su editor favorito; y el editor que he venido usando ya hace un par de años es PHPStorm. Así que vamos a configurar PHPStorm y PHPUnit para nuestros proyectos Local.

Este post es un “bonus” de nuestro post “Prueba tus WordPress Plugins con PHPUnit en Local“.

PHPStorm y PHPUnit

Retomando el proyecto anterior, WP PHPUnit Plugin Example, debemos abrirlo en nuestro PHPStorm y después abrir el archivo test-class-wp-phpunit-pe-simple.php.

El archivo test-class-wp-phpunit-pe-simple.php contiene una prueba muy sencilla pero nos servirá para ver si nuestro PHPStorm y PHPUnit están configurados.

En primera, la clase tiene un extends, hereda a la clase WP_UnitTestCase. Esa clase contiene todos los asserts (métodos de comprobación) que aplicaremos a nuestro código.

Sin embargo, PHPStorm te dirá que la clase no está definida y se debe a que no encuentra ninguna clase con el mismo nombre en tu proyecto:

WP_UnitTestCase. Clase indefinida.
WP_UnitTestCase. Clase indefinida.

Agregando WP_UnitTestCase

¿Recuerdas que habíamos descargado una carpeta wordpress-tests-lib? Esa carpeta es descargada cuando ejecutamos el archivo /bin/install-wp-tests.sh e incluye los siguientes archivos:

Los archivos instalados en la carpeta wordpress-tests-lib.
Los archivos instalados en la carpeta wordpress-tests-lib.

La clase WP_UnitTestCase existe dentro del archivo wordpress-tests-lib/includes/testcase.php y a su vez esa clase extiende la clase WP_UnitTestCase_Base.

Para que la clase WP_UnitTestCase sea visible en nuestro proyecto debemos agregar la carpeta completa de wordpress-tests-lib. Para hacer esto, debes abrir los Settings de tu PHPStorm e ir a PHP->Include Path->Add (+)->Specify Other…:

Settings de PHPStorm para agregar PHPUnit.
Settings de PHPStorm para agregar PHPUnit.

De ahí busca y selecciona la carpeta wordpress-tests-lib y le das OK:

Busca y selecciona la carpeta wordpress-tests-lib.
Busca y selecciona la carpeta wordpress-tests-lib.

Después de agregar, da click en Apply y después OK.

Las pruebas

Recuerda que las pruebas las estamos haciendo acorde a lo que hicimos en el post anterior, donde configuramos PHPUnit en nuestros proyectos de Local.

Ahora, si pones tu cursor sobre la clase WP_UnitTestCase te saldrá la descripción de la clase:

Descripción de la clase WP_UnitTestCase.
Descripción de la clase WP_UnitTestCase.

Incluso después de agregar todas las clases necesarias a nuestro PHPStorm, podrás ver íconos Play de color verde los cuales sirven para ejecutar la clase o método de nuestra prueba:

Botones para ejecutar la prueba de PHPUnit en PHPStorm.
Botones para ejecutar la prueba de PHPUnit en PHPStorm.

Si le das click en ese botón o el que está a lado del nombre de la clase te saldrá un cuadro preguntando qué harás: correr las pruebas, hacer un debug, entre otros. De momento nosotros solo debemos correr las pruebas:

Cuadro con opciones para correr las pruebas.
Cuadro con opciones para correr las pruebas.

Las pruebas empezarán a correr y si todo sale bien, de acuerdo a tu tipo de prueba (recuerda que estamos usando nuestro plugin de prueba WP PHPUnit Plugin Example), te debe salir un resultado similar al de la siguiente imagen:

Resultados de PHPStorm y PHPUnit.
Resultados de PHPStorm y PHPUnit.

Si te sale algún tipo de error puedes pegarlo en los comentarios y con gusto te ayudaré a resolverlo.

Ahora si, ¡estás listo para hacer tus pruebas usando PHPStorm y PHPUnit!

Roel Magdaleno
Escrito por Roel Magdaleno

Roel Magdaleno es un ingeniero informático especializado en desarrollo web desde hace más de 5 años. Desarrolla sitios web, aplicaciones web, plugins para WordPress y scripts con PHP y JavaScript. Además, comparte su conocimiento en su blog personal.

Deja un comentario