Laravel 4フレームワークでphpunitを使用しています。テスト中にPHPエラーが発生した場合、エラーメッセージが表示されないのはなぜですか(例:missing方法)?
Phpunitですべてのエラーを表示するにはどうすればよいですか?
問題はおそらくPHPUnitではなくPHP自体に関係していると思います。次の手順に従ってください:
1。適切な_php.ini
_を確認してください。一部のシステムでは、異なるPHP SAPIに対して異なる_php.ini
_を使用できることに注意してください。
_php -i | grep php.ini
Configuration File (php.ini) Path => /etc/php5/cli
Loaded Configuration File => /etc/php5/cli/php.ini
_
2。エラー出力設定を編集します。対応する_php.ini
_で error_reporting 、 display_errors 、 display_startup_errors に適切な設定を設定します。
_error_reporting = E_ALL
display_errors = On
display_startup_errors = On
_
グローバルスコープでのCLIエラー報告の動作を変更したくない場合は、PHPUnit bootstrapファイルを使用してこれらの設定を定義できます。
1。 PHPUnitのbootstrapをセットアップします。 _/Applications/MAMP/htdocs/testtingDecoded/phpunit.xml
_ファイルを開き、bootstrap属性をphpunitタグに追加します。
_<phpunit bootstrap="bootstrap.php">
_
2。 _phpunit.xml
_でフォルダーにbootstrap.phpを作成します:
_<?php
ini_set('error_reporting', E_ALL); // or error_reporting(E_ALL);
ini_set('display_errors', '1');
ini_set('display_startup_errors', '1');
_
これは、特に本番サーバーでテストを実行している場合や、テスターがPHP構成をあまり認識していない場合に、非常に一般的な問題です。
この問題は、 Alexander Yancharuk が指摘したように、php.ini
設定に関連しており、彼が提案するすべての解決策は問題なく動作します。
しかし、次のように、PHPUnit構成ファイル(XML)自体に適切なPHP設定を設定するという、私にとっては便利な別の解決策があります。
<phpunit>
<suites>
...
</suites>
<php>
<ini name="display_errors" value="On" />
<ini name="display_startup_errors" value="On" />
</php>
</phpunit>
これを使用すると、エラー表示だけでなく、特にテストスイート用の多くのPHP構成をパーソナライズでき、本番構成はそのままで、このためだけにbootstrapファイルを作成する必要がありません。