Symfony 3.1 + PhpUnit:未报告控制器异常

时间:2017-01-19 12:30:56

标签: php phpunit symfony

我使用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参数?

1 个答案:

答案 0 :(得分:0)

现在似乎最好的选择是在config_test.yml中添加一行来禁用twig异常处理程序

twig:
  exception_controller: false