Cómo personalizar el proceso de arranque antes de correr las pruebas

A veces, al correr pruebas, necesitas hacer trabajo adicional en el proceso de arranque antes de correr esas pruebas. Por ejemplo, si estás corriendo una prueba funcional y has introducido un nuevo recurso de traducción, entonces necesitarás vaciar tu cache antes de correr esas pruebas. Esta receta abarca cómo hacerlo.

Primero, añade el siguiente archivo:

// app/tests.bootstrap.php
if (isset($_ENV['BOOTSTRAP_CLEAR_CACHE_ENV'])) {
    passthru(sprintf(
        'php "%s/console" cache:clear --env=%s --no-warmup',
        __DIR__,
        $_ENV['BOOTSTRAP_CLEAR_CACHE_ENV']
    ));
}

require __DIR__.'/bootstrap.php.cache';

Reemplaza la prueba del archivo de arranque bootstrap.php.cache en aplication/phpunit.xml.dist con pruebas.bootstrap.php:

<!-- app/phpunit.xml.dist -->

<!-- ... -->
<phpunit
    ...
    bootstrap = "tests.bootstrap.php"
>

Ahora, puedes definir en tu archivo phpunit.xml.dist qué entorno de la caché quieres vaciar:

<!-- app/phpunit.xml.dist -->
<php>
    <env name="BOOTSTRAP_CLEAR_CACHE_ENV" value="test"/>
</php>

Esto ahora se vuelve una variable de entorno (es decir, $_ENV) que está disponible en el archivo bootstrap (tests.bootstrap.php).

Bifúrcame en GitHub