Pruebas de Plugins (tests unitarios)
Podemos realizar pruebas de nuestro plugin utilizando PHPUnit, colocando los tests unitarios en la carpeta Test del plugin. A continuación, podemos observar un ejemplo en el repositorio de GitHub del plugin Informes.
🗂️ Estructura de archivos
El plugin debe tener una carpeta Test y dentro otra carpeta main, donde finalmente van los archivos php con los tests unitarios, además del archivo install-plugins.txt
- Test
- main
- install-plugins.txt
- MiTest.php
- MiSegundoTest.php
- ...
- main
Si además queremos ejecutar pruebas de nuestro plugin en combinación con otros, podemos crear más carpetas dentro de Test, cada una con un archivo install-plugins.txt
propio donde indicaremos los plugins a activar para ejecutar esos tests.
- Test
- main
- install-plugins.txt
- MiTest.php
- MiSegundoTest.php
- ...
- informes
- install-plugins.txt
- ...
- main
📃 Archivo install-plugins.txt
En el archivo install-plugins.txt
debemos incluir los nombres de los plugins a instalar. Por defecto, se debe añadir el nombre del propio plugin. Si se requieren activar otros plugins previamente, simplemente se debe colocar la lista de plugins a instalar, separados por comas. No olvides incluir el nombre del plugin que estás desarrollando:
StockAvanzado,Servicios
🧪 Creación de un Test Unitario
Podemos crear un test unitario utilizando fsmaker con el parámetro test. Nos pedirá el nombre del archivo y lo creará en la carpeta.
fsmaker test
También podemos crear el test manualmente. Este debe ser un archivo PHP cuyo nombre termine por Test. Debe usar el espacio de nombres FacturaScripts\Test\Plugins
y heredar de PHPUnit\Framework\TestCase
. Además, las funciones a ejecutar dentro del test unitario deben tener un nombre que comience por test
.
<?php
namespace FacturaScripts\Test\Plugins;
use PHPUnit\Framework\TestCase;
class MiTest extends TestCase
{
public function testCreate(): void
{
// tu código aquí
}
}
Recuerda que las funciones deben comenzar por test
, de lo contrario no se ejecutarán al pasar los tests.
🚀 Ejecución de Tests
Para ejecutar los tests del plugin podemos usar igualmente fsmaker, pero con la opción run-tests:
fsmaker run-tests
Si preferimos ejecutarlos manualemente, debemos copiar los tests del plugin a la carpeta Test/Plugins
de FacturaScripts, abrir un terminal en la carpeta raíz de FacturaScripts y ejecutar los siguientes comandos:
php install-plugins.php
vendor/bin/phpunit phpunit-plugins.xml
🕑 Ejecución de Tests como GitHub Actions
Puedes crear una acción de GitHub para ejecutar los tests del plugin con cada nuevo commit. Aquí tienes un ejemplo: