由于语法错误或致命错误,如何在PHPunit中导出失败的测试?

由于语法错误或致命错误,如何在PHPunit中导出失败的测试?,php,phpunit,Php,Phpunit,下面是我的phpunit.xml文件。一旦出现PHP致命错误,所有日志记录方法都将停止。我希望能够记录此错误 <phpunit verbose="true" colors="true" stopOnFailure="false" syntaxCheck="true"> <logging> <log type="tap" target="results/results.tap"/> <log type="testdox-text"

下面是我的phpunit.xml文件。一旦出现PHP致命错误,所有日志记录方法都将停止。我希望能够记录此错误

<phpunit verbose="true" colors="true" stopOnFailure="false" syntaxCheck="true">
    <logging>
    <log type="tap" target="results/results.tap"/>
    <log type="testdox-text" target="results/results.txt" />
        <log type="junit" target="results/results.junit" logIncompleteSkipped="true"/>
        <log type="json" target="results/results.js"/>
        <log type="coverage-html" target="results/report" charset="UTF-8"
           yui="false" highlight="false"
           lowUpperBound="35" highLowerBound="70"/>
    </logging>
</phpunit>

由于phpunit或者更确切地说,您的测试运行在一个致命的错误中,php解释器除了死掉之外无法做更多的事情,因此通过phpunit进行日志记录似乎相当困难

使用-process隔离开关或设置processIsolation=true将每个测试作为单独的进程运行可能会对您有所帮助。但这会降低测试套件的速度,等等

因此,作为一个快速解决方案,您可以将php的错误输出放入日志文件中,以防显示错误

phpunit yourTests 2> errors.log
可能在测试运行中使用不同的php.ini,并在那里提供一个日志文件,或者通过

echo "" > error.log && phpunit -d error_log=error.log yourTests
所以您至少有一个包含错误的文件可供检查