2012-01-16 66 views
9

我正在使用PHPUnit(3.6.7)來測​​試並在我的應用程序上提供代碼覆蓋率報告,所有內容都按照預期設置並工作。使用帶有接口的PHPUnit代碼覆蓋率

我對所有的,除了我的界面代碼的完全覆蓋,即使我有,對於類,實現的接口測試。該報告只是說,該接口未被執行

有沒有辦法覆蓋接口?還是告訴PHPUnit忽略它們的代碼覆蓋率?

回答

5

您可以從父抽象類/接口指定具體類的測試覆蓋方法。

參見​​部分中Code Coverage Analysis章手動英寸

在同一章中你還可以想辦法忽略代碼覆蓋分析的代碼或整個文件塊。

+1

完美!謝謝。對於其他任何人遇到這種情況,您需要@covers CLASS_NAME 在你測試類的文檔塊 – 2012-01-16 15:27:32

+0

更新鏈接,最新版本的手冊頁:https://phpunit.de/manual/current/en/code-coverage-analysis.html – shevron 2014-12-01 17:14:41

+0

@shevron:謝謝!我現在更新了我答案中的鏈接。 – Mchl 2014-12-02 15:33:23

1

接口不包含可執行代碼,所以沒有什麼可以測試的。

+0

我並不想直接測試他們,雖然他們得到與assertInstanceOf()使用的,我只是希望他們在代碼覆蓋,因爲他們正在「使用」 – 2012-01-16 14:57:08

5

只是作爲一個附加的應答:

PHPUnit的(3.7.)的下一個版本將默認忽略覆蓋所有接口。

因此,將沒有必要使用任何形式的包括或//@codeCoverageIgnore方法可以解決呢。