単体テストに PHPUnit を使用していますが、致命的なエラーが発生するとスクリプトが停止し、正しい PHPUnit 出力が得られません。
Eclipse のプラグインによって読み取られるため、PHPUnit の出力が正しい形式のままであることを望みます。実際には、致命的なエラーによって PHPUnit が停止し、Eclipse ではプラグインが何も解釈できません (PHPUnit スクリプトにエラーがあったため、エラーを処理する代わりに)。
ありがとう
単体テストに PHPUnit を使用していますが、致命的なエラーが発生するとスクリプトが停止し、正しい PHPUnit 出力が得られません。
Eclipse のプラグインによって読み取られるため、PHPUnit の出力が正しい形式のままであることを望みます。実際には、致命的なエラーによって PHPUnit が停止し、Eclipse ではプラグインが何も解釈できません (PHPUnit スクリプトにエラーがあったため、エラーを処理する代わりに)。
ありがとう
PHPUnit のプロセス分離機能を使用する必要があります。各テスト スイートを新しいプロセスで開始します。
phpunit --process-isolation ...
これは、致命的なエラーによって phpunit の出力が壊れないようにする唯一の方法です。
単一のテストごとに、新しい PHP インスタンスが開始され、ブートストラップが実行されるため、プロセスの分離により、テストの実行時間が倍増します。
この状況を修正するには、完全なテスト ケースを別のプロセスで実行する@runTestsInSeparateProcesses
か ( )、致命的な結果になることがわかっている単一のテスト ケースのみを実行するか ( ) を選択できます@runInSeparateProcess
。
set_error_handler() は役に立ちません。register_shutdown_function()を使用して致命的なエラーをキャッチできます