symfony LogicException:“无法添加全局“ea”作为运行时或扩展

mmvthczy  于 2023-10-23  发布在  其他
关注(0)|答案(1)|浏览(161)

在浏览器中,easyadmin工作正常。但是当我在登录后运行测试用例Assert重定向逻辑到EasyAdmin的 Jmeter 板控制器时,它失败了,并出现以下错误:

  1. Uncaught PHP Exception LogicException: "Unable to add global "ea" as the runtime or the extensions

正如下面的评论所指出的,
https://github.com/EasyCorp/EasyAdminBundle/issues/5591#issuecomment-1405962016在我看来,EasyAdmin twig扩展是在Twig扩展和运行时初始化之后调用的。
在扩展和运行时初始化之前,不应调用easyadmin twig扩展,并且phpunit应通过

gev0vcfq

gev0vcfq1#

我找到了解决问题的办法。
当在一个测试中执行多个请求时,从Symfony 5.4开始,Client会为每个请求重新启动内核。因此,为了能够在测试中运行多个请求,我应该在执行多个请求的测试用例中添加$this->client->enableReboot();
一次测试中的多个请求发出请求后,后续的请求将使客户端重新启动内核。这将从头开始重新创建容器,以确保每次请求都是隔离的并使用新的服务对象。此行为可能会产生一些意外的后果:例如,安全令牌将被清除,Doctrine实体将被分离等。
这里是链接https://symfony.com/doc/current/testing.html#multiple-requests-in-one-test

相关问题