1

私は Symfony2 バンドルに取り組んでおり、実行しましphpunit --coverage-textた。すべてのテストが問題なくパスし、コード カバレッジ レポートを受け取りましたが、不完全で、下部に次のメッセージが表示されます。

Classes: 4.08% (2/49)
Methods: 1.94% (12/619)
Lines:   1.60% (46/2867)
..
....  
zend_mm_heap corrupted

私は PHP 5.4.11 を使用しており、PHPUnit と xdebug の最新バージョンを実行しています。PHPUnit は、コード カバレッジを依頼した場合を除いて、常に適切に実行されます。PHPUnit 構成ファイルの関連部分を次に示します。

    <testsuites>
        <testsuite name="My Suite">
            <directory>./src/Company/*Bundle/Tests</directory>
        </testsuite>
    </testsuites>

    <filter>
        <whitelist>
            <directory suffix=".php">./src/Company/*Bundle/</directory>
        </whitelist>
    </filter>

メモリまたは出力バッファリングの問題であると考えたので、次の ini ディレクティブを上げてみました。

output_buffering = 8192
memory_limit = 1028M

これにより、以前のエラーは削除されましたが、代わりにsegmentation fault 11エラーが発生し始めました。

これらの問題をどのように解決しますか?

4

2 に答える 2

0

問題は、単体テストを含むフォルダーがbundle の一部であるため、コード カバレッジ レポートに含まれているようです。PHPUnit で問題が発生した場合の詳細はわかりませんが、単体テストがバンドルにある場合は、それらがコード カバレッジから明確に除外されていることを確認する必要があります。

これが私の新しい phpunit.xml 構成ファイル (関連部分) です。zend_mm_heap もセグメンテーション違反もありません。

    <testsuites>
        <testsuite name="My Suite">
            <directory>./src/Company/*Bundle/Tests</directory>
        </testsuite>
    </testsuites>

    <filter>
        <whitelist>
            <directory suffix=".php">./src/Company/*Bundle/</directory>
            <exclude>
                <directory>./src/*/*Bundle/Tests</directory>
            </exclude>
        </whitelist>
    </filter>
于 2013-02-14T19:37:46.990 に答える
0

使用する必要があります

<filter>
  <whitelist processUncoveredFilesFromWhitelist="true">
    <directory suffix=".php">/path/to/files</directory>
    <file>/path/to/file</file>
    <exclude>
      <directory suffix=".php">/path/to/files</directory>
      <file>/path/to/file</file>
    </exclude>
  </whitelist>
</filter>

カバレッジ レポートのソース ファイルをフィルター処理する

于 2013-07-24T02:55:13.660 に答える