升级Symfony
后,composer.json
运行phpunit
测试时出错。在env dev
和prod
中,一切正常。
日志输出:
request.CRITICAL: Uncaught PHP Exception Twig_Error_Runtime: "The native_profiler" extension is not enabled in "@WebProfiler/Profiler/toolbar_js.html.twig"
答案 0 :(得分:6)
如果调试模式打开,则自动打开twig本机配置文件扩展,如果在Symfony 2.7中关闭调试模式,则会关闭。因此,如果在树枝模板上使用调试模式预热缓存,则会在启用探查器的情况下呈现。 但是如果测试在关闭调试时运行(例如使用Kris Wallsmith解决方案),则在测试中禁用扩展(但仍在预渲染模板中启用),这会导致错误。 解决方案:在运行测试之前,请关闭调试模式清除缓存。
app / console cache:clear --env = test --no-debug
如果没有twig profiler,缓存将被清除并预热。
答案 1 :(得分:1)
我今天遇到了同样的问题,但略有不同。最后我发现,TwigProfiler会自动在调试模式下启用。 在KernelTestCase.php中,我发现:
isset($options['debug']) ? $options['debug'] : true
所以在我的TestCases中我添加了'debug'=>选项。是的,它再次起作用。
答案 2 :(得分:1)
我的jenkins也有类似的错误。我们的CI工作运行(1)PHPUnit测试,而不是(2)使用LiipFunctionalTestBundle进行功能测试,最后(3)进行量角器测试。
twig模板由功能测试(2)编译,它将内核配置为处于调试模式。然而,Protractor测试在测试环境中启动PHP服务器但不在调试模式下启动。所以树枝模板不兼容。我通过删除步骤(2)和(3)之间的缓存来解决问题。
答案 3 :(得分:0)
更改调试模式后清除缓存似乎已解决了我的问题。
答案 4 :(得分:0)
在使用--no-debug
bazinga:js-translation:dump
开关
例如像这个命令
../app/console bazinga:js-translation:dump -vvv --no-debug -e stage
答案 5 :(得分:0)
尝试更新版本。从版本 1.18 到 1.24 对我有帮助。
使用Symfony 2.7和Sylius 0.13
更多信息: https://github.com/symfony/symfony/issues/15318 https://github.com/twigphp/Twig/pull/1824