20

PHPUnit のコード カバレッジからフォルダを強制的に除外することは可能ですか?

私が抱えている問題は、 にフォルダーを持つ Symfony 1.4 プロジェクトがあること./lib/vendor/symfony/*です。内部にあるものはすべて除外したい./lib/vendor/*- 再帰的に。

ここで、テストで暗黙のうちにカバーされているかどうかに関係なく、それらを除外したいと思います。つまり、これらのフォルダーは表示したくありません。そのため、このビットをphpunit.xml構成ファイルに追加しましたが、何をしてもこれらのフォルダーを除外していないようです:

<filter>
    <whitelist>
        <exclude>
            <directory>./lib/vendor/*</directory>
            <directory>./lib/vendor/symfony/lib/*</directory>
        </exclude>
    </whitelist>
</filter>

コードがヒットし、XDebug がそれに気付いた瞬間に、PHPUnit はそれをコード カバレッジに含めます。これに関する私にとってのマイナス面は、このコードは Symfony 開発者によって既にテストされているため、カバレッジ レポートに含める必要がなく、数値が台無しになることです:P

4

5 に答える 5

27

わかりました。ブラックリスト セクションまたはホワイトリスト セクションのいずれかを使用できると思いましたが、両方を使用できることが判明したため、これらのフォルダーをブラックリストに登録したところ、機能しました。

    <filter>
        <blacklist>
              <directory>./lib/vendor</directory>
              <directory>./lib/helper</directory>
        </blacklist>
    </filter>
于 2013-01-17T13:51:10.537 に答える
2

観察: ホワイトリスト (コード カバレッジに含めたいディレクトリ) は、ブラックリストと比較して、テスト スイート全体の phpunit の実行を高速化します。

<filter>
    <whitelist>
          <directory>/my/project/directory/to/be/covered</directory>
          ....
    </whitelist>
</filter>

テスト済み: PHPUnit 4.5.0 および PHP 5.5.9

于 2015-06-20T09:04:36.210 に答える