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

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

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

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

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