2013-02-20 35 views
1

我正在學習ZF2「Getting Started」教程之後的Zend Framework 2。現在我有一個簡單的應用程序對IndexController進行PHPUnit測試(代碼從本教程的首字母「Unit Testing」中複製)。測試工作。現在,我想創建一個代碼覆蓋率報告:PHPUnit覆蓋-html分析錯誤的文件夾

# phpunit --coverage-html ./report 

# phpunit --coverage-html ./report ApplicationTest/Controller/IndexControllerTest.php 

我希望整個文件夾test(第一個例子)或IndexControllerTest(第二個例子)的覆蓋報告。

enter image description here

爲什麼:

什麼目前我得到這個報告?我怎樣才能讓代碼覆蓋腳本處理文件/文件夾,我想分析。

編輯:

我可以瀏覽到我的模塊文件夾,看到的報告:

enter image description here

但問題是保持不變的情況:(1)爲什麼它的工作原理,以便和(2)我如何才能使代碼覆蓋腳本進程(僅)文件/文件夾,我想分析。

回答

4

您可以使用phpunit.xml包含/排除代碼覆蓋率的文件或文件夾,請參閱phpunit manual

此外,您可以忽略來自代碼覆蓋率聚合的特定代碼塊。請參閱:http://www.phpunit.de/manual/3.2/en/code-coverage-analysis.html

PHPUnit代碼覆蓋率使用xdebug來計算覆蓋線。如果您的IndexControllerTest也在訂單文件中運行行,它們也將顯示在覆蓋率報告中。

+0

謝謝您的回覆!是的,可以排除一些文件甚至文件夾。但是爲什麼報告頁面顯示文件夾「var」和「usr」?當您創建覆蓋報告時,它的外觀如何? – automatix 2013-02-21 10:10:42

+1

您的'IndexControllerTest'也執行'usr'文件夾中的代碼。您可以通過深入瀏覽來檢查執行哪些代碼。如果認爲你的phpunit安裝位於'usr'文件夾中,那麼這個代碼覆蓋範圍也會列出,因爲php運行的是phpunit代碼。如果你沒有在你的配置中爲代碼覆蓋指定任何白名單(phpunit.xml),phpunit會將代碼覆蓋的根設置爲最高公共地圖(在你的情況下是'/') – 2013-02-21 11:00:11

+0

你是對的,謝謝! '<?XML版本= 「1.0」 編碼= 「UTF-8」?> \t <測試包名稱= 「zf2sandbox」> \t \t ./AlbumTest \t \t \t \t \t \t \t <目錄後綴=」。PHP「> /無功/網絡/沙/ zf2sandbox /模塊/專輯/ src目錄/專輯/ \t \t \t ' – automatix 2013-02-21 11:37:10