未捕获的 PHP 异常 LogicException:“无法添加全局“ea”作为运行时或扩展

问题描述 投票:0回答:1

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

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 扩展和运行时初始化之后调用的

在扩展和运行时初始化并且 phpunit 应该通过之前,不应调用 easyadmin twig 扩展

symfony phpunit symfony4 easyadmin easyadmin3
1个回答
0
投票

我找到了解决问题的方法。

当在一个测试中执行多个请求时,从 Symfony 5.4 开始

Client
针对每个请求重新启动内核。这样就能够运行多个请求 在测试中,我应该在执行多个请求的测试用例中添加
$this->client->enableReboot();

一次测试中的多个请求 发出请求后,后续请求将使客户端重新启动内核。这将从头开始重新创建容器,以确保请求被隔离并每次都使用新的服务对象。此行为可能会产生一些意想不到的后果:例如,安全令牌将被清除、Doctrine 实体将被分离等。

这是链接https://symfony.com/doc/current/testing.html#multiple-requests-in-one-test

© www.soinside.com 2019 - 2024. All rights reserved.