PHPunit
Instalación en Linux Debian 9 :
wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar
sudo mv phpunit.phar /usr/local/bin/phpunit
phpunit --version
Configurar PHPunit en un proyecto desde cero
Una vez instalado PHPunit.
Usaremos PHPUnit de forma global mediante composer ...
# composer global require phpunit/phpunit
Ahora escribiendo phpunit
en el terminal debería salir el help de PHPunit.
Para crear los autolad configuramos composer.json ...
{
"autoload": {
"psr-4": {
"Myapp": "src/"
}
}
}
El siguiente comando recorre todo src
y creará los autoloads ...
# composer dump-autoload
Creamos un primer test de ejemplo ...
use PHPUnit\Framework\TestCase;
use App\myclass;
class myclaseTest extends TestCase
{
public function testresultIsTrue()
{
$obj = new myclass();
$word = 'method';
$this->assertTrue($obj->mymethod($word), true);
}
public function testresultIsFalse()
{
$obj = new myclass();
$word = 'paris';
$this->assertFalse($obj->mymethod($word), false);
}
}
Creamos un archivo phpunit.xml
para configurara PHPunit , este archivo se sitúa en la raíz de tests
.
<phpunit bootstrap="src/autoload.php">
<testsuites>
<testsuite name="GroupTest">
<directory>tests</directory>
</testsuite>
</testsuites>
</phpunit>
Ahora deberíamos poder ver los resultados de los test con el comando ...
# phpunit
Obtener informes:
Obtener un xml ...
phpunit --log-junit results.xml tests
Obtener Json ...
phpunit --log-json results.xml tests
Instalar Coverage
composer require phpunit/php-code-coverage
Ejecutar un test con coverage:
Desde phpunit.xml al final antes del </phpunit> poner ...
<logging>
<log type="coverage-html" target="./web/coverage" charset="UTF-8"
yui="true" highlight="true"
lowUpperBound="50" highLowerBound="80"/>
<log type="testdox-html" target="./log/testdox.html" />
</logging>
Luego ejecutar en la línea de comandos ...
$ phpunit
Si obtenemos un mensaje del tipo ... No se ha encontrado coverage. Puede ser porque no tenemos instalada la extensión Xdebug de php. Para instalar la extensión (en Debian)...
Instalamos la extensión y resetamos apache2 ...
# apt-get install php-xdebug
....
....
Configurando php-xdebug (2.5.0-1) ...
# service apache2 restart
Para acceder a los informes, podemos hacerlo vía web... en el directorio NUESTR-URL-LOCALHOST/web/coverage/index.html