2

単体テストを試すために、新しい zend フレームワーク アプリケーションを作成しました。

私はこのチュートリアルに従いましたが、テストではすべてが正しく機能しているようです。カバレッジ レポートの表示に問題があります。正しい情報が表示されますが、レポートはハード ドライブのルートから開始されるため、有用な情報を表示するにはツリーをプロジェクト フォルダまで移動する必要があります。

これは、テストを実行するたびに、実際のレポートを取得するために 5 つのフォルダーの深さをクリックする必要があることを意味します。

プロジェクト フォルダでレポートを開始するにはどうすればよいですか? これは私のphpunit設定ファイルです:

<phpunit bootstrap="./bootstrap.php">
    <testsuite name="Application Test Suite">
        <directory>./application</directory>
    </testsuite>
    <testsuite name="Library Test Suite">
        <directory>./library</directory>
    </testsuite>

    <filter>
        <whitelist>
            <directory>../../library/Zend</directory>
            <exclude>
                <directory suffix=".phtml">../application/</directory>
                <file>../application/Bootstrap.php</file>
                <file>../application/controllers/ErrorController.php</file>
            </exclude>          
        </whitelist>
    </filter>

    <logging>
        <log type="coverage-html" target="./log/report" charset="UTF-8" yui="true" 
             hightlight="true" lowupperbound="50" highlowerbound="80">
            <log type="testdox" target="./log/testdox.html">
            </log>
        </log>
    </logging>
</phpunit>
4

2 に答える 2

1

問題を修正しました...

ホワイトリストでアプリケーション フォルダーを明示的に指定する必要がありました。空の場合、コード カバレッジ レポートは 'c:' から始まり、すべての '.php' ファイルを見つけようとします。

ホワイトリスト セクションに行を追加した後:

<directory>../application/</directory>

期待どおりに動作します。

テスト フォルダーにライブラリ テストがないため、Zend ライブラリ フォルダーを含めてもおそらく効果はなく、レポートではホワイトリストが空であると見なされたに違いありません。そして、ブラックリストがないため、ルートから開始しただけです。

于 2012-07-22T18:59:07.440 に答える
0

コード カバレッジは、レポートに含まれるすべてのファイルの最も一般的なパスから始まります。したがって、Web ルートが /var/www にあり、ライブラリを /usr/local/zend/ に含める場合、最も一般的なパスはルート パスになります。

解決策は、ライブラリ パスを除外することです。これは、通常、外部ライブラリのコード カバレッジを測定したくないためです。

于 2012-07-22T10:06:15.387 に答える