Сбрасывать базу данных Redis после каждого теста в laravel - PullRequest
0 голосов
/ 08 апреля 2019

В моем приложении laravel я использую Redis для хранения некоторого кэша (например, список элементов, которые будут отображаться на первой странице). Я всегда получаю доступ к Redis через Фасад: Illuminate\Support\Facades\Redis.

Я создал другую базу данных Redis для тестирования (1 вместо 0), но мне также нужно сбрасывать ее после каждого теста, чтобы тест никогда не получал данные из предыдущего теста.

Есть ли эффективный способ создать такое поведение?

Я пытался реализовать это, используя аннотацию @before:

/**
 * @before
 */
public function prepareForTesting() {
    Redis::flushdb();
}

Но я получаю ошибку: Cannot use 'FLUSHDB' over clusters of connections.

Есть идеи?

1 Ответ

1 голос
/ 08 апреля 2019

Может быть, вы могли бы использовать встроенную команду ремесленника cache:clear?

Как это:

/**
 * @before
 */
public function prepareForTesting() {
    Artisan::call('cache:clear');
}
...