PHPUnit问题 - 没有错误消息

Jak*_*édl 13 php phpunit symfony

我一直试图解决这个问题很长一段时间.

我有一个简单的PHPUnit测试用例,包含2个测试.当我运行它时,我得到这个输出:

PHPUnit 3.5.14 by Sebastian Bergmann.

.
Run Code Online (Sandbox Code Playgroud)

所以第一个断言运行,传递.然而,第二个断言导致一些PHP错误(异常或其他),并且PHPUnit只是在没有任何关于可能出错的信息的情况下死掉.

这是我的phpunit.xml:

<?xml version="1.0" encoding="UTF-8"?>

<phpunit backupGlobals="false"
    backupStaticAttributes="false"
    colors="false"
    convertErrorsToExceptions="true"
    convertNoticesToExceptions="true"
    convertWarningsToExceptions="true"
    processIsolation="false"
    stopOnFailure="true"
    syntaxCheck="false"
    bootstrap="bootstrap.php.cache"
>
    <testsuites>
        <testsuite name="Portal Test Suite">
            <directory>../src/OneSolution/Portal/*Bundle/Tests</directory>
        </testsuite>
    </testsuites>
</phpunit>
Run Code Online (Sandbox Code Playgroud)

设置syntaxChecktrue不提供有关错误的任何其他信息.但是,它确实打印了两次(在运行任何测试之前)The filename, directory name, or volume label syntax is incorrect.

???

那么,有没有人有任何想法我可以做些什么来使PHPUnit报告这些错误消息(该--verbose选项也没有帮助)?

编辑:我发现了导致测试失败的原因.有一个错误的方法名称(我猜太依赖于代码辅助).但是,这并不能解决主要问题.任何警告,错误或异常都不会被PHPUnit报告.

Jak*_*édl 16

好的,所以如果有人从PHPUnit命令行中获取无输出或不完整的输出有问题,请仔细检查php.ini配置指令:

  • error_reporting- 应该E_ALL | E_STRICT针对您的开发环境进行设置
  • display_errors - 应该设置为 On

  • 在PHP> = 5.4时,您只需要使用E_ALL,因为E_STRICT是E_ALL的一部分. (2认同)