質問

現在、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プロファイリングおよび/または包括的な相続人の視聴者)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top