2016-10-21 3 views
1

私は自分のプロジェクトのコードカバレッジを取得しようとしていますが、呼び出されていない関数やクラスはカバレッジ計算を考慮しません。コードの大部分が無視されるときに、まだ(何が)覆われていないものが見えるのは難しいです。PHPUnitは、コールされていないカバレッジレポート関数をコーディングしないのはなぜですか?

以下の画像では、最初の3つの機能の本体が赤く強調表示されています。実行される関数で実行されない行は、少なくとも赤色で表示されます。何が価値がある、私はPHP 7.0.12-1でのDebianのテストを実行し、aptがインストールされてXDebugの2.4.1-1およびComposerでインストールされたPHPUnit 4.8.27を使用しているために

Uncovered Lines

+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%被覆としてマークされます。 –

関連する問題