2012-08-07 276 views
1

我正在使用PHPUnit運行模塊測試,並希望獲得有關測試的覆蓋率報告。過去我已經成功地做到了這一點,但不知何故,我再也無法工作,我不知道爲什麼它不再工作。唯一的區別是我現在運行PHP 5.4而不是5.3。PHPUnit代碼覆蓋率0%

測試在Ant構建文件使用exec命令來運行:

<exec dir="${basedir}" executable="phpunit.bat" failonerror="${test.failonerror}"> 
    <arg value="--log-junit" /> 
    <arg value="${test.phpunit.log}" /> 
    <arg value="--coverage-clover" /> 
    <arg value="${test.phpunit.coverage.log}" /> 
    <arg value="--bootstrap" /> 
    <arg value="${test.phpunit.bootstrap}" /> 
    <arg value="${test.phpunit.testdir}" /> 
</exec> 

這裏是螞蟻日誌的片段時,我跑我的測試:

module-test-php: 
    [exec] PHPUnit 3.6.12 by Sebastian Bergmann. 
    [exec] ............. 
    [exec] Time: 5 seconds, Memory: 8.75Mb 
    [exec] OK (13 tests, 113 assertions) 
    [exec] Generating code coverage report in Clover XML format ... done 

從日誌,它似乎覆蓋面報告應該工作,但是當我打開報告,我得到的是這個

<?xml version="1.0" encoding="UTF-8"?> 
<coverage generated="1344329670"> 
    <project timestamp="1344329670"> 
    <metrics files="0" loc="0" ncloc="0" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/> 
    </project> 
</coverage> 

是否有一些設置我在這裏失蹤或爲什麼我得到零覆蓋?

更新

我做了一些更多的測試,發現錯誤有關Phar歸檔。這個問題已被報道。

https://github.com/sebastianbergmann/php-code-coverage/issues/107

回答

0

代碼覆蓋率爲約源代碼形式。源代碼表單是您所做更改的軟件的變體。

phar文件是一個檔案。與由Zend Encoder或Ioncube編碼器甚至APC編碼的PHP代碼類似,代碼覆蓋不能用於這些代碼,更重要的是:代碼覆蓋率作爲度量標準對於這些文件的工作沒有任何意義。

所以你可能只是想知道,但想知道兩次,想想爲什麼這樣。試着用自己的語言來解釋爲什麼報告phar文件的代碼覆蓋沒有用處。