我有一个Laravel应用程序,使用mysql作为其主数据库,我也使用一些redis连接在某些地方更快的数据加载。
目前,我正在使用laravel中的phpunit创建单元测试。然而,我试图创建单元测试的方法有redis connection-redis::connection()
。预期的断言应该是200响应,但由于该redis连接,它将返回500响应。如何在php单元上启用redis,以便为其创建单元测试?
我当前的phpunit。xml的配置如下所示:
<php>
<server name="APP_ENV" value="testing"/>
<server name="BCRYPT_ROUNDS" value="4"/>
<server name="CACHE_DRIVER" value="array"/>
<server name="DB_CONNECTION" value="mysql"/>
<server name="DB_DATABASE" value="MY_DB_NAME"/>
<server name="MAIL_MAILER" value="array"/>
<server name="QUEUE_CONNECTION" value="sync"/>
<server name="SESSION_DRIVER" value="array"/>
</php>
以下是错误日志:
[2021-03-29 12:12:53] testing.ERROR: Please make sure the PHP Redis extension is installed and enabled. {"userId":84,"exception":"[object] (LogicException(code: 0): Please make sure the PHP Redis extension is installed and enabled. at /home/johndoe/bo2-dev/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php:77)
[stacktrace]
#0 /home/johndoe/bo2-dev/vendor/laravel/framework/src/Illuminate/Support/helpers.php(433): Illuminate\\Redis\\Connectors\\PhpRedisConnector->Illuminate\\Redis\\Connectors\\{closure}(Object(Illuminate\\Support\\Facades\\Redis))
#1 /home/johndoe/bo2-dev/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php(105): tap(Object(Illuminate\\Support\\Facades\\Redis), Object(Closure))
#2 /home/johndoe/bo2-dev/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php(28): Illuminate\\Redis\\Connectors\\PhpRedisConnector->createClient(Array)
#3 /home/johndoe/bo2-dev/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php(32): Illuminate\\Redis\\Connectors\\PhpRedisConnector->Illuminate\\Redis\\Connectors\\{closure}()
#4 /home/johndoe/bo2-dev/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php(110): Illuminate\\Redis\\Connectors\\PhpRedisConnector->connect(Array, Array)
#5 /home/johndoe/bo2-dev/vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php(90): Illuminate\\Redis\\RedisManager->resolve('default')
#6 /home/johndoe/bo2-dev/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(261): Illuminate\\Redis\\RedisManager->connection()
#7 /home/johndoe/bo2-dev/app/Http/Controllers/DataContentOfficerController.php(419): Illuminate\\Support\\Facades\\Facade::__callStatic('connection', Array)
#8 /home/johndoe/bo2-dev/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\\Http\\Controllers\\DataContentOfficerController->manual_qc_confirm()
#9 /home/johndoe/bo2-dev/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\\Routing\\Controller->callAction('manual_qc_confi...', Array)
#10 /home/johndoe/bo2-dev/vendor/laravel/framework/src/Illuminate/Routing/Route.php(239): Illuminate\\Routing\\ControllerDispatcher->dispatch(Object(Illuminate\\Routing\\Route), Object(App\\Http\\Controllers\\DataContentOfficerController), 'manual_qc_confi...')
#11 /home/johndoe/bo2-dev/vendor/laravel/framework/src/Illuminate/Routing/Route.php(196): Illuminate\\Routing\\Route->runController()
#12 /home/johndoe/bo2-dev/vendor/laravel/framework/src/Illuminate/Routing/Router.php(685): Illuminate\\Routing\\Route->run()
...
如果您的本地(. env
工作),您应该创建一个。env.testing
并使用--env=test
选项进行PHPUnit测试,就像文档中说的那样。
问题内容: 我正在创建一个laravel程序包,在这个页面中我需要在Redis中保存一些数据,但是我希望该程序包使用不同的Redis连接,以便他们可以在程序包的配置文件中设置Redis详细信息凭据并将其用于这个包。我想给包用户使用不同的Redis连接的自由。 如果您有任何想法,我怎么能做到这一点。任何帮助,将不胜感激。 问题答案: 文档中有一节称为 使用多个Redis连接 更改连接呼叫 您可以在运
我读过laravel 5.5留档为unittest。据说我们只需要执行phpUnit{如https://laravel.com/docs/5.5/testing}然后我尝试了这个:如何使用phpUnit运行单个测试方法? 但据说“无法打开文件”。然后我尝试了phpunitexampletest,但仍然无法打开该文件。那么这里怎么了。。。?提前谢谢
我想在我的项目中测试特定的测试类,因为有很多测试类失败,我只想一次测试一个类。 我在以下文件夹中创建了测试类: 因此,我尝试了以下命令,但均无效: = 有什么帮助吗?谢谢
问题内容: 这是我使用socket.io作为WebSocket并使用pub / sub redis后端的代码。 每个新的io请求都将创建新的Redis连接。如果有人打开带有100个选项卡的浏览器,则Redis客户端将打开100个连接。看起来不太好。 如果Cookie相同,是否可以重用Redis连接?因此,如果有人打开许多浏览器选项卡,也将其视为打开1连接。 问题答案: 实际上,如果要在“连接”事件
我用LettuceConnectionFactory定义了RedisTemplate,但我不知道如何创建连接事件,例如在https://github.com/lettuce-io/lettuce-core/wiki/Connection-Events. 如何使用RedisTemboard获取RedisClient实例?
我已经搜索了一段时间,如何记录在“laravel/framework”中执行的sql查询:“5.0.*” 但是我发现的一切都是关于版本4的,还没有找到任何类似于这样的5.0的工作解决方案:在Laravel3/4中执行查询,以及如何在Laravel5中执行查询?DB::getQueryLog返回空数组和http://laravelsnippets.com/snippets/log-db-querie
本文向大家介绍Laravel如何使用Redis共享Session,包括了Laravel如何使用Redis共享Session的使用技巧和注意事项,需要的朋友参考一下 一、当系统的访问量上升的时候,使用Redis保存Session可以提高系统的性能,同时也方便多机负载的时候共享Session 1.打开config/database.php。在redis中增加session的连接 2.打开config/
我是新来的Laravel使用本地开发环境与家园尝试运行简单的测试 路由/网络。php: 运行phpunit返回404错误 vagrant@homestead:~/code/laravel$phpunit phpunit 6.4。3由塞巴斯蒂安·伯格曼和撰稿人撰写。 .F.3/3(100%) 时间:1.07秒,内存:10.00MB 有1次失败: 1) Tests\Feature\UserTest::