2011-08-03 9 views
3

は、CLIのための私のphp.iniファイルに私が持っている私はPHPUnitのとXdebugをインストールした、と:私は、対話型コンソールを使用してエラーを作成するときにXdebugをバックトレースが印刷されていることを確認したPHPUnitが私のxdebugバックトレースを隠すのはなぜですか?

display_errors = On 
xdebug.default_enable = 1 

、 phpunitの実行中にエラーが発生した場合、バックトレースはありませんか?

バックトレースには何が起こっていますか? phpunitはそれを私から隠していますか?私は行方不明のいくつかの設定はありますか?

ありがとうございます!

答えて

7

バックトレースに何が起こっていますか? phpunitはそれを私から隠していますか?

はい、PHPUnitはxdebugを無効にします。これらのトレースは(xdebug_disable()Docsを呼び出して)無効にします。

いくつか設定がありますか?

xdebug_enable()Docsでもう一度有効にしたbootstrapファイルを追加できます。これは機能しますが、スローされた例外(捕捉されたまたは捕捉されなかった)にトレースをスタックすることが示されます。

は、同様に参照してください:Issue #221 PHPUnit disables xdebugは、別のini設定が示唆されている。

sebastianbergmann:問題はxdebug.show_exception_trace構成設定です。 1に設定すると、これは "この例外が実際にキャッチされたとしても、例外が発生するたびにスタックトレースを表示します"。この動作はPHPUnitの出力を破壊します。

私が正しく覚えていれば、Derickはxdebug_disable();ini_set('xdebug.show_exception_trace', 0);よりも使用することを推奨しました。

+2

そして今、私はそれを推薦することを覚えていないか、または理由:)。私はshow_exception_traceが[デフォルトでオフ]であることを知っています(http://xdebug.org/docs/stack_trace#show_exception_trace) – Derick

+0

PHPUnitのプラクティスをもう一度見直す価値はあります:)いくつかのテストを実行します。 – hakre

+1

最初にxdebug_enable()を呼び出すと、トリックが実行されました。ありがとう! –

1

phpunitによるユニットテストは、CLIアプリケーションであるコンソールから実行されるからです。あなたがそれを実行することができるはずです。

php -dhtml_errors=1 `which phpunit` yourteststuff. 
関連する問題