由于语法错误或致命错误,如何在PHPunit中导出失败的测试?
下面是我的phpunit.xml文件。一旦出现PHP致命错误,所有日志记录方法都将停止。我希望能够记录此错误由于语法错误或致命错误,如何在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 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
所以您至少有一个包含错误的文件可供检查