Blog / PHP / Comenzando con PHPUnit
PHPUnit viene de serie para hacer pruebas unitarias en los frameworks PHP. También podemos usarlo en proyectos a medida con PHP (Flat PHP), instalando de forma global o local.
PHPUnit viene de serie para hacer pruebas unitarias en los frameworks PHP. También podemos usarlo en proyectos a medida con PHP (Flat PHP), instalando de forma global o local.
Al comprobar si PHPUnit está instalado y su versión:
phpunit --version
Obtendremos un mensaje indicando que no se encuentra en el sistema y el comando para su instalación:
sudo apt install phpunit
O su versión actual en caso contrario.
Después de instalar o actualizar usaremos de nuevo el comando phpunit --version para comprobar que se hizo correctamente.
Agregaremos la librería al proyecto usando Composer, que deberá estar previamente instalado en el sistema.
La librería y sus dependencias suponen entre 2 y 3 Mb, de ficheros, en el directorio "vendor/".
Para instalar usamos un comando como:
composer require --dev phpunit/phpunit ^9.0
Si lo que necesitamos es actualizar PHPUnit usaremos:
composer update phpunit
Si PHPUnit está instalado correctamente con
phpunit --version vemos su versión.
Ahora, para poder hacer pruebas unitarias, lo cargamos en los ficheros
de pruebas y extendemos la clase TestCase
.
Crearemos una clase con test para cada clase a testear y un directorio para las pruebas, para organizar un poco el código. Así, para la clase Foo, creamos la clase FooTest, dentro del directorio "test/", que extenderá la clase necesaria para implementar las pruebas unitarias, sería algo así:
<?php
require '../vendor/autoload.php';
require '../foo.php';
use \PHPUnit\Framework\TestCase;
use \ironwoods\xxx\Foo;
class FooTest extends TestCase
{
...
}
Si no incluimos PHPUnit en el proyecto, es decir que usaremos la instalación global para ejecutar los test, el require del fichero "autoload.php" no debe ser incluido.
Abrir la terminal en el directorio donde están las clases con las pruebas y escribir:
phpunit FooTest.php
Este comando funcionará si tenemos phpunit instalado globalmente o un alias definido para la instalación local, en otro caso y, dentro del directorio "test/":
php ../vendor/bin/phpunit FooTest.php
PHPUnit 9.5.1 by Sebastian Bergmann and contributors.
W 1 / 1 (100%)
Time: 330 ms, Memory: 4.00MB
There was 1 warning:
1) Warning
No test found in class "FooTest".
WARNINGS!
test: 1, Assertions: 0, Warnings: 1.
La instrucción anterior puede mejorarse con algunas opciones, por ejemplo:
phpunit MiClaseTest.php --colors=always --repeat 10
Mostrar el resultado de la ejecución en color y repetir el test 10 veces (mejor no repetir hasta que pase en verde).
Para crear una alias del comando, en el directorio "test/":
alias phpunit='php ../vendor/bin/phpunit'
Ahora que PHPUnit funciona, podemos empezar a escribir algunas pruebas, para esto lo mejor es ir a la documentación de PHPUnit.
Página de instalación de Composer
20-12-2017 (actualizado 28-01-2021)