PHPUNITコードカバレッジ生成により、メモリの疲労が引き起こされます
-
29-09-2019 - |
質問
現在、PHPunitと組み合わせてZend Frameworkを使用して、アプリケーションでユニットテストを実施しています。 HudsonがPHPunit Shellコマンドを実行すると、コードカバレッジ生成中に最大PHPメモリ制限に到達します。現在、334のアサーションを含む合計41のテストがあります。
Memory_limit設定を768mに上げて、このエラーを正常に排除しました。 -d memory_limit=768M
スイッチ;ただし、テスト/アサーションの総数とともに複雑さが増加するにつれて、コードカバレッジ統計のHTMLを生成するのに十分なメモリがないことを心配しています。
OS: Centos 5.5
コントロールパネル: WHM/CPANEL
CIサーバー: ハドソン
/usr/local/bin/phpunit
--verbose
-d memory_limit=512M
--log-junit ../../build/logs/phpunit.xml
--coverage-clover ../../build/logs/coverage/clover.xml
--coverage-html ../../build/logs/coverage-html/
致命的なエラー:536870912バイトのメモリサイズが排出されました
私の変更を犯し、ハドソンに残りを処理させる前に、私は開発にWindows 7を使用します。 W7内で同じコマンドを実行している間、メモリ使用量は340MBを超えることはありませんでした。
解決
コードカバレッジ内に含まれるファイルの数を減らし、PHPの全体的なメモリ制限を増やすことで、基本的にこのエラーを殺すことができました。 Zendフレームワーク全体がコードカバレッジに含まれていましたが、これは非常に大きいです。
他のヒント
Xdebugプロファイリングを有効にしていますか?もしそうなら、それを無効にしてみてください。私は以前にこの問題を経験しました、そしてそれはPHPの拡張になりました(特にXdebugプロファイリングおよび/または包括的な相続人の視聴者)
所属していません StackOverflow