在 CakePHP IntegrationTest 中 "Redis"-class 仅在执行测试时未知

In a CakePHP IntegrationTest "Redis"-class is unknown only when executing the test

我正在尝试为控制器实施 PHPUnit 集成测试。在控制器中,我实例化了 PHPRedis-class (https://github.com/phpredis/phpredis#usage):

的一个对象

//connect to redis database try { $this->objPHPRedis = new \Redis(); $this->objPHPRedis->connect('127.0.0.1'); } catch(\RedisException $e) { $this->log($e, 1); } catch (\Exception $e) { $this->log($e, 1); }

这在我处理正常请求时效果很好,但在我执行测试时却失败了:

PHP Fatal error: Class Redis not found in /var/www/.../MyController.php on line 100.

我不知道从哪里开始寻找问题。有人知道问题出在哪里吗?

您的 php CLI 配置没有加载 redis 模块。找到你的 CLI php.ini,可能命名为 cli_php.ini 或类似的东西,并确保你的 redis 模块也加载在那里。