Как настроить процесс начальной загрузки перед выполнением тестов

Иногда при проведении тестов, вам понадобится проделать дополнительную работу начальной загрузки перед их проведением. Например, если вы проводите функциональный тест и ввели новый источник перевода, тогда вам понадобится очистить ваш кеш до проведения этих тестов.

Чтобы сделать это, вначале добавьте следующий файл:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
// 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__.'/autoload.php';

Замените файл начальной загрузки autoload.php в phpunit.xml.dist с tests.bootstrap.php:

1
2
3
4
5
6
<!-- phpunit.xml.dist -->

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

Теперь вы можете определить в вашем файле phpunit.xml.dist, кеш какого окружения вы хотите очистить:

1
2
3
4
<!-- phpunit.xml.dist -->
<php>
    <env name="BOOTSTRAP_CLEAR_CACHE_ENV" value="test"/>
</php>

Теперь это становится переменной окружения (т.е. $_ENV), которая доступна в пользовательском файле начальной загрузки (tests.bootstrap.php).

Эта документация является переводом официальной документации Symfony и предоставляется по свободной лицензии CC BY-SA 3.0.