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