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