在浏览器中,easyadmin工作正常。但是当我在登录后运行测试用例Assert重定向逻辑到EasyAdmin的 Jmeter 板控制器时,它失败了,并出现以下错误:
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应通过
1条答案
按热度按时间gev0vcfq1#
我找到了解决问题的办法。
当在一个测试中执行多个请求时,从Symfony 5.4开始,
Client
会为每个请求重新启动内核。因此,为了能够在测试中运行多个请求,我应该在执行多个请求的测试用例中添加$this->client->enableReboot();
。一次测试中的多个请求发出请求后,后续的请求将使客户端重新启动内核。这将从头开始重新创建容器,以确保每次请求都是隔离的并使用新的服务对象。此行为可能会产生一些意外的后果:例如,安全令牌将被清除,Doctrine实体将被分离等。
这里是链接https://symfony.com/doc/current/testing.html#multiple-requests-in-one-test