laravel - 在 laravel 中每次测试后重置 Redis 数据库

标签 laravel redis phpunit laravel-testing

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

我创建了一个不同的 Redis 数据库用于测试(1 而不是 0),但我还需要在每次测试后重新设置它,这样测试就永远不会获取数据从以前的测试。

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

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

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

但我收到错误:无法在连接集群上使用“FLUSHDB”。

有什么想法吗?

最佳答案

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

像这样:

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

关于laravel - 在 laravel 中每次测试后重置 Redis 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55573663/

相关文章:

php - wrk 基准测试工具对于测试最快的 php 框架是否可靠

php - Laravel AJAX 请求,方法不允许

mongodb - Express.js/Passport.js : Where is req. 用户存储?

ruby-on-rails - rails + docker + sidekiq + 在 127.0.0.1:6379 上连接到 Redis 时出错(Errno::ECONNREFUSED)

php - 如何在 laravel 中使用 phpunit 测试特定的测试类

php - 排除静态方法调用

php - Laravel 5 应用程序 - AJAX Post 请求不接受 token 并抛出 500 内部服务器错误

php - Laravel 5.1 Cookie 问题

php - Redis:phpRedis 客户端连接数增加直至达到 11-12

selenium - phpunit 的 Selenium 2 Web 驱动程序中的 setBrowserUrl() 和 url() 有什么区别?