首页 > 解决方案 > 在 laravel 中每次测试后重置 Redis 数据库

问题描述

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

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

有没有一种有效的方法来创建这种行为?

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

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

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

有任何想法吗?

标签: laravelredisphpunitlaravel-testing

解决方案


也许您可以使用内置的工匠cache:clear命令?

像这样:

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

推荐阅读