Categorías
WordPress

Testing de plugins en WordPress con PHPUnit

Existe bastante contenido que explica los tipos de tests, cuándo utilizar cada uno y otras bases teóricas que se deben tener en cuenta, por lo que acá lo único que haré es explicar como empezar a implementar tests de un plugin en WordPress en Windows.

Si es tu primera vez implementando tests, recomiendo investigar de antemano sobre la teoría, éste artículo hace un muy buen trabajo explicando lo que necesitas saber.

Para seguir este tutorial, necesitarás instalar lo siguiente:

  • Composer.
  • PHPUnit 7. Instálalo con composer: composer require --dev phpunit/phpunit ^7
  • Git para Windows. Por defecto incluye el Git BASH, el cuál es necesario para correr los archivos .sh que no son compatibles con el CMD de Windows.
  • El CLI de WordPress.
  • Tortoise SVN. Asegurate de habilitar la opción ‘command line client tools’ en el instalador. Esto expondrá el ejecutable de svn.
  • XAMPP. Una vez instalado, añade el directorio xampp/mysql/bin al PATH. Esto expondrá el ejecutable de mysqladmin.

Una vez instaladas todas las dependencias, procedemos a abrir una nueva ventana del CMD, nos ubicamos en la carpeta del plugin y ejecutamos el siguiente comando: wp scaffold plugin-tests plugin-name

Esto generará dos nuevos directorios, bin y tests. Ahora debemos crear una nueva base de datos en XAMPP que será utilizada para la instalación de WordPress vinculada a nuestros tests. Llámala wordpress_test.

Cuando ya esté creada la base de datos, tenemos que abrir el Git BASH y hacer cd a la carpeta bin que se creó en el paso anterior.

Antes de ejecutar el comando a continuación, puedes definir en las variables de entorno de Windows, las variables WP_TESTS_DIR y WP_CORE_DIR, que indican el directorio en el que se instalarán respectivamente todos los archivos de la librería de tests de WordPress y el build limpio para pruebas.

Ahora si, ejecutamos el comando que instalará todas las dependencias de la librería de tests y creará la base de datos necesaria para las pruebas:

bash install-wp-tests.sh wordpress_test root '' localhost latest

Ahora, para ejecutar los tests, debes utilizar el comando phpunit desde la raíz del directorio de tu plugin.