2010-07-23 26 views
1

以下是我的phpunit.xml文件。所有的記錄方法都會在發生PHP致命錯誤時立即停止。我想能夠有這個錯誤的日誌。由於語法錯誤或致命錯誤,我如何在PHPunit中導出失敗的測試?

<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> 

回答

0

由於PHPUnit的(或者說你的測試)致命錯誤PHP解釋器是無法做到的遠不止死,所以運行PHPUnit的通過測井似乎相當辛苦。

也許將每個測試運行爲單獨進程(使用--process-isolation開關或設置processIsolation =「true」)可能會對您有所幫助。但是這會減慢你的Testsuite等等。

因此,作爲一個快速解決方案,您可以將php的錯誤輸出放入日誌文件中(以防在display_errors打開的情況下)。

phpunit yourTests 2> errors.log 

也許使用您的testruns一個不同的php.ini,並提供一個日誌文件還是隻把它傳遞到PHP通過

echo "" > error.log && phpunit -d error_log=error.log yourTests 

,所以你至少有對錯誤的文件對證。

相關問題