我使用Symfony 3.1.9和PhpUnit 5.6.5。
每当控制器发生异常时,它都由symfony处理,堆栈跟踪显示在视图中。
如何修复此问题并使phpunit输出异常?
我的phpunit配置:
<?xml version="1.0" encoding="UTF-8"?>
<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.8/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="app/autoload.php"
>
<php>
<ini name="error_reporting" value="-1" />
<server name="KERNEL_DIR" value="app/" />
</php>
<testsuites>
<testsuite name="Project Test Suite">
<directory>tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>src</directory>
<exclude>
<directory>src/*Bundle/Resources</directory>
<directory>src/*/*Bundle/Resources</directory>
<directory>src/*/Bundle/*Bundle/Resources</directory>
</exclude>
</whitelist>
</filter>
</phpunit>
编辑:这似乎与twig如何在test和dev中以相同方式呈现异常有关。如https://symfony.com/doc/current/configuration/environments.html中所述:
无论环境如何,都可以运行Symfony应用程序 debug mode设置为true或false。这影响了很多东西 应用程序,例如在错误页面上显示堆栈跟踪或缓存 每个请求都会动态重建文件。虽然不是 对于开发和测试,调试模式通常设置为true 环境和生产环境的错误。
现在我们如何在test中设置kernel.debug参数?
答案 0 :(得分:0)
现在似乎最好的选择是在config_test.yml中添加一行来禁用twig异常处理程序
twig:
exception_controller: false