2016-10-21 38 views
1

我試圖讓我的項目之一的代碼覆蓋面,但函數和類未調用不計入覆蓋率計算。當大塊代碼被忽略時,很難看到尚未覆蓋的內容(大量)。爲什麼PHPUnit代碼覆蓋報告函數沒有被調用?

在下面的圖片中,我期望前三個函數的主體高亮顯示爲紅色。在執行的函數中沒有執行的行至少顯示爲紅色。

Uncovered Lines

對於它的價值,我運行Debian測試與PHP 7.0.12-1和Xdebug 2.4.1-1如通過安裝apt和使用作爲安裝了由作曲家PHPUnit的27年4月8日。

+0

有趣的是,從我的phpunit.xml中刪除'processUncoveredFilesFromWhitelist =「true」'似乎使它更好,儘管不是全部。我得到的大部分功能都顯示爲紅色,現在正在計算我的覆蓋範圍。但是......並非所有人都這樣做。還有一些沒有標記。我不確定這種模式是什麼,但我現在至少在做些什麼。 –

+0

從[這個問題](https://stackoverflow.com/questions/29041254/phpunit-coverage-what-is-the-difference-between-adduncoveredfilesfromwhitelist#29042391),它看起來好像有選項集應該導致更準確的報告,因爲它計算它而不是使用啓發式。 –

+0

我剛纔問了一些相關的或類似的東西。這個問題是否仍然基於xdebug錯誤? https://stackoverflow.com/questions/46133501/phpunit-symfony-why-coverage-shows-white-instead-of-red-and-gives-100-on-unt –

回答

0

這個問題似乎是XDebug和PHP 7.0中的一個持續性錯誤,正如本期所涵蓋的:https://github.com/sebastianbergmann/php-code-coverage/issues/411所以,它應該像我期望的那樣工作,而且我的設置沒有任何不正確。猜猜我只需要等到基礎原因(在XDebug中)找到並修復。在此之前,該線程指出開啓流程隔離是一種解決方法。

0

代碼覆蓋率報告應該包括計算中的所有代碼,而不僅僅是有色的東西。你確定非突出顯示的代碼被排除?非突出顯示的代碼只是沒有測試的代碼,紅色突出顯示的是已經測試代碼但未經過測試的方法內的代碼位(如條件語句,您只測試條件的一側)

+0

未突出顯示的功能不是正在計數。對於沒有高亮功能的班級,這會導致0/0計數,並且該班級被標記爲100%覆蓋。 –

相關問題