2010-12-07 68 views
2

我正在做簡單的框架和使用xdebug代碼覆蓋率報告的單元測試。讓我解釋一下我的問題:xdebug代碼覆蓋率分析與最簡單的框架

  • 我有一個我想測試的類讓我們假設類的名字是pagination.php。
  • 我寫了另一個測試類。我寫了兩個測試用例來測試分頁類。
  • 在兩個測試用例中有大約12個斷言,這給了我正確的結果「Pass」。
  • 現在我想生成代碼覆蓋率報告,爲此我使用xdebug來顯示我的測試用例覆蓋所有代碼。我使用xdebug_start_code_coverage()函數,並顯示結果我使用xdebug_get_code_coverage()函數。

現在的問題是,當我打印xdebug_get_code_coverage()它給我2維聯合數組與文件名,行號和執行時間。結果是這樣的:

array 
    'path/to/file/pagination.php' => 
    array 
     11 => int 1 
     113 => int 1 

第11行是類的開始,第113行是類的結尾。我不知道爲什麼它不會進入課堂,爲什麼它沒有給出課堂功能的聲明範圍。但是,我的測試用例對我來說看起來還不錯,而且我知道所有的條件和分支覆蓋都在起作用。

如果你在這方面幫助我,並且指導我如何解決這個問題,我將非常感激。

也許我錯過了這裏的東西。如果你想要更多的東西,請讓我知道。

+0

沒有任何機構那裏回答我的問題。如果問題不清楚或不能回答,請讓我知道。 – sim 2010-12-07 19:50:27

回答

1

我使用被調用的方法爲一個類實現了一個XDebug-CC,它工作正常。雖然我不得不說我對這個工具如何定義「可執行代碼」有點困惑,但它肯定考慮了方法。

您可能會檢查xdebug_start_code_coverage()和xdebug_get_code_coverage()的位置,因爲必須在開始和結束時調用這些位置。

此外,您可能會檢查您的XDebug版本,因爲該功能發佈後已經進行了一些準確性改進。

最佳

拉斐爾