Як налаштувати процес початкового завантаження перед виконанням тестів
Дата оновлення перекладу 2023-06-23
Як налаштувати процес початкового завантаження перед виконанням тестів
Іноді при проведенні тестів, вам знадобиться зробити додаткову роботу початкового завантаження перед їх проведенням. Наприклад, якщо ви проводите функціональний тест і ввели нове джерело перекладу, то вам знадобиться очистити ваш кеш до проведення цих тестів.
Під час установки тестувань з використанням Symfony Flex,
це вже створено у файлі tests/bootstrap.php
, який запускається PHPUnit перед вашими
тестами.
Ви можете модифікувати цей файл, щоб додати користувацьку логіку:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
// tests/bootstrap.php
use Symfony\Component\Dotenv\Dotenv;
require dirname(__DIR__).'/vendor/autoload.php';
if (file_exists(dirname(__DIR__).'/config/bootstrap.php')) {
require dirname(__DIR__).'/config/bootstrap.php';
} elseif (method_exists(Dotenv::class, 'bootEnv')) {
(new Dotenv())->bootEnv(dirname(__DIR__).'/.env');
}
+ if (isset($_ENV['BOOTSTRAP_CLEAR_CACHE_ENV'])) {
+ // виконує команду "php bin/console cache:clear"
+ passthru(sprintf(
+ 'APP_ENV=%s php "%s/../bin/console" cache:clear --no-warmup',
+ $_ENV['BOOTSTRAP_CLEAR_CACHE_ENV'],
+ __DIR__
+ ));
+ }
Note
Якщо ви не використовуєте Symfony Flex, переконайтеся, що цей файл сконфігуровано
в якості файлу початкового завантаження у вашому файлі phpunit.xml.dist
:
1 2 3 4 5 6 7
<!-- phpunit.xml.dist -->
<?xml version="1.0" encoding="UTF-8" ?>
<phpunit
bootstrap="tests/bootstrap.php"
>
<!-- ... -->
</phpunit>
Тепер ви можете оновити файл phpunit.xml.dist
, щоб оголосити користувацьку
змінну середовища, представлену tests/bootstrap.php
:
1 2 3 4 5 6 7 8 9 10
<!-- phpunit.xml.dist -->
<?xml version="1.0" encoding="UTF-8" ?>
<phpunit>
<php>
<env name="BOOTSTRAP_CLEAR_CACHE_ENV" value="test"/>
<!-- ... -->
</php>
<!-- ... -->
</phpunit>
Тепер, при запуску vendor/bin/phpunit
, кеш буде очищено автоматично
файлом початкового завантаження до виконання всіх тестів.