Sonar を使用して、PHP プロジェクトに関するレポートを表示しています。これまでのところうまくいきましたが、問題が発生しました。コード カバレッジは、フィルター処理されたファイルを無視しているようです。
私の Ant 構成は、Solar PHP プラグインのすべてのモジュールを取得し、それらを「analyzeOnly」モードにして、モジュールの出力を解析するだけです (そのうち、ant で個別のビルド ターゲットに分割しました)。これはうまく機能しています。Sonar PHP プラグインがコンソールで実行されているときのパス出力は、すべてのビルド ログと一致しているようです。PHPUnit コード カバレッジである sonar.phpUnit.coverageReportFile を除いて、すべてが正常に取り込まれ、解析されているようです。PHPUnit構成が正しくセットアップされていると思います。コード カバレッジの HTML 出力を表示すると、フィルタリングされたファイルのみがレポートに表示され、80% のコード カバレッジが得られます。Sonar を使用してクローバー スタイルの xml 出力 (このファイルには正しくスキャンされたファイルのみが含まれています) を分析すると、Sonar は 17% のコード カバレッジしか示しません。これは、無視されたすべてのファイルのカバレッジが 0% であると言っているからです。
私はいくつかの背景調査を行いましたが、いくつかの回答は、2年以上前に閉じられたバグにつながるようです. これは、最新の PHP プラグインを使用した Sonar の現在の 3.4.1 バージョンにあります。何か案は?ファイルを別の場所で除外する必要がありますか?
アリの設定:`
<property name="sonar.phpUnit.analyzeOnly" value="true"/>
<property name="sonar.phpUnit.reportFileName" value="../../../build/logs/junit.xml"/>
<property name="sonar.phpUnit.coverage.analyzeOnly" value="true" />
<property name="sonar.phpUnit.coverageReportFile" value="../../../build/logs/clover.xml" />`
編集: これは何か関係があるかもしれません: http://jira.codehaus.org/browse/SONARPLUGINS-1394 無視されたファイルは PHPUnit によってチェックされないため、レポートには含まれません。PHPUnit がスキャンするすべてのファイルは、報告されます。ファイルにカバレッジがない場合、ファイルにカバレッジがないことが報告されます。