2011-01-26 7 views
3

私は一連のPHPunitテストを実行しており、100%カバレッジを報告しているコントローラを持っています。 しかし、カバレッジレポートでは、84行のコードのうち5行だけが「緑色」とマークされていますコントローラの100%カバレッジを示すコードカバレッジレポート

この問題の原因は何ですか?

面白い点があるのは、かもしれません。 '間接呼び出し'です。この特定のコントローラは他の多くのコントローラの親であり、多くの他のオブジェクトがそれを継承しているので、コードはどこか別の場所で呼び出されるかもしれませんが、その後は緑色に変わりませんか?

緑に変わる唯一の方法は、__constructです。

これは実際には十分であるかどうかはわかりませんが、ユニットテストがどのようにカバレッジを決定するかについてもう少し知識があれば、聞いてみたいと思います。

編集のGauravさんのコメント `に応じて:

PHPUnitのコマンドラインはphpunit --configuration admin.xml

あるとadmin.xmlはjakenobleに対応して

<phpunit bootstrap="./admin/applications/admin/bootstrap.php" colors="true"> 
    <testsuite name="AdminTestSuite"> 
     <directory suffix=".php">./admin/applications/admin/</directory>   
     <directory suffix=".php">./admin/applications/shared/</directory> 
    </testsuite> 
    <filter> 
     <whitelist> 
      <directory suffix=".php">../admin/applications/admin/controllers</directory> 
      <directory suffix=".php">../admin/applications/shared/controllers</directory>   
      <directory suffix=".php">../admin/applications/shared/helpers</directory> 
      <directory suffix=".php">../admin/lib/controllers</directory>   
      <directory suffix=".php">../admin/lib/helpers</directory> 
      <directory suffix=".php">../admin/lib/models</directory> 
      <directory suffix=".php">../admin/lib/utils</directory>   
     </whitelist> 
     <blacklist> 
       <file>../dm_admin/applications/shared/controllers/DashboardController.php</file> 
      <directory suffix=".php">../admin/lib/crons</directory> 
     </blacklist>     
    </filter> 
    <logging> 
     <log type="coverage-html" target="/projects/ut/admin/" charset="UTF-8" 
      yui="true" highlight="true" 
      lowUpperBound="50" highLowerBound="80"/> 
     <log type="testdox-html" target="/projects/ut/admin/testdox.html" /> 
    </logging> 
</phpunit> 

を読み取ります

ヘルパーです100%カバレッジを読み取る The report reading 100% coverage on the helper

しかし、我々は Some text at the top of one of the methods - 1099 lines in all

を参照の内側には時折、緑...しかし、赤なしで、1099行のために行きます。

+1

コードがどのように呼び出されたかは関係ありません。実行されている行があれば、それは緑色になります。あなたはどのようにphpunitコマンドを実行し、おそらくphpunit.xmlファイルコード – Gaurav

+0

を元に追加したのか教えてください –

+0

コードカバレッジのスクリーンショットを投稿できますか? –

答えて

0

コードカバレッジレポートには、クラス、メソッドと関数、および行の3つの異なるスコアが表示されます。

クラスは、エンティティでテストされたクラスの数に関するレポートです。したがって、ファイルごとに1つのクラスがあり、そのクラスの一部をテストすると、クラスの100%をテストするときに表示されます。

ファイルに2つのクラスがあり、1つのクラスをテストすると、50%クラスのカバレッジが得られます。

+0

実行中の行は色を変更していません。彼らはまったく "白い"。 –

+0

えええええええ、これはまったく別の問題です。それについてはわからない。あなたが使用しているXMLファイルは、コードカバレッジの設定オプションにも同じです。愚かな質問ですが、行がHTMLレベルで正しく変更されていることを確認できますか? –

+0

もう少しお手伝いすると、対象となる行はlineCov、そうでない行はlineNoCov、HTMLクラスはlineDeadCodeと表示されます。少なくとも、それは彼らが私のためにしているものです。 –

関連する問題