laravel - 在 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.
有任何想法吗?
解决方案
也许您可以使用内置的工匠cache:clear
命令?
像这样:
/**
* @before
*/
public function prepareForTesting() {
Artisan::call('cache:clear');
}
推荐阅读
- visual-foxpro - 连接两个表的数据计算
- python - the_model = TheModelClass(*args, **kwargs) 是什么意思?
- dart - 来自相机颤动的base64encode图像
- c++ - 如何制作可以接受任何类型参数的 std::functions 和 lambdas
- android - 登录时 Facebook 身份验证失败?
- sql-server - 如何使用 mac OS 通过 API 将 laravel 连接到 sql server?
- javascript - Angular DI 和继承:注入基础服务的扩展
- wordpress - 如何在添加新帖子中修改由“Wordpress 编辑器”生成的 HTML 代码?
- python - Python:将第一个元素更改为列表本身
- php - Visual Studio Code、PHP 项目、全局包含/自动加载/自动包含一个 functions.php 文件,仅用于智能感知