PHPUnitでモジュールテストを実行していて、テストのカバレッジレポートを取得したいと思います。私は過去にこれを成功させてきましたが、どういうわけか私はそれを再び機能させることができず、なぜそれがもはや機能しないのか分かりません。唯一の違いは、5.3ではなくPHP5.4を実行していることです。
テストは、execコマンドを使用してAntビルドファイルで実行されます。
<exec dir="${basedir}" executable="phpunit.bat" failonerror="${test.failonerror}">
<arg value="--log-junit" />
<arg value="${test.phpunit.log}" />
<arg value="--coverage-clover" />
<arg value="${test.phpunit.coverage.log}" />
<arg value="--bootstrap" />
<arg value="${test.phpunit.bootstrap}" />
<arg value="${test.phpunit.testdir}" />
</exec>
テストを実行したときのAntログのスニペットは次のとおりです。
module-test-php:
[exec] PHPUnit 3.6.12 by Sebastian Bergmann.
[exec] .............
[exec] Time: 5 seconds, Memory: 8.75Mb
[exec] OK (13 tests, 113 assertions)
[exec] Generating code coverage report in Clover XML format ... done
ログから、カバレッジレポートは機能するはずですが、レポートを開くと、これだけが表示されます。
<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1344329670">
<project timestamp="1344329670">
<metrics files="0" loc="0" ncloc="0" classes="0" methods="0" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="0" coveredstatements="0" elements="0" coveredelements="0"/>
</project>
</coverage>
ここで欠落している設定がありますか、それともカバレッジがゼロになるのはなぜですか?
アップデート
さらにテストを行ったところ、pharアーカイブに関連するバグが見つかりました。この問題が報告されました。
https://github.com/sebastianbergmann/php-code-coverage/issues/107