在Laravel中进行每次测试后重置Redis数据库

时间:2019-04-08 12:36:04

标签: laravel redis phpunit laravel-testing

在laravel应用程序中,我使用Redis存储一些缓存(例如,要显示在首页上的项目列表)。我总是通过立面Illuminate\Support\Facades\Redis访问Redis。

我创建了一个不同的Redis数据库进行测试(1,而不是0),但是我还需要在每次测试后将其重置,以使该测试永远不会从先前的测试中获取数据。

是否有一种有效的方式来创建这种行为?

我尝试使用@before注释来实现它:

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

但是我得到了错误:Cannot use 'FLUSHDB' over clusters of connections.

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

Maybe you could use the built in artisan cache:clear command?

Like this:

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