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.xmlpara 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

results matching ""

    No results matching ""