2013-09-05 9 views
8

phpunit --coverage-htmlを実行すると、タイムゾーンに関するよく知られた警告が表示されます。PHPUnitは "警告:日付():安全ではありません..."を返します

PHP警告:date():システムのタイムゾーン 設定に依存するのは安全ではありません。 date.timezone設定または date_default_timezone_set()関数を使用するには、が必要です。です。これらの方法のいずれかを使用していて、まだこの警告が表示されている場合は、おそらく のタイムゾーン識別子のスペルが間違っています。 のタイムゾーン 'UTC'を選択しましたが、date.timezoneを設定してタイムゾーンを選択してください。

すべてが期待通りに機能しますが、実際には迷惑になります。もちろん

、私は私のphp.iniを変更することで、これを解決することができますが、可能であれば私はいくつかのサーバー不可知論を保つために、それを避けることを好むだろう。さらに、私はテスト可能なコードによって引き起こされた場合にこの警告が表示されないようにしたくありません。

デフォルトのタイムゾーンを内部のPHPUnit操作に対してのみ定義する方法はありますか?

答えて

12

私は、Bootstrap.phpファイルにTimeZoneを設定しました。

<?php 
// PHP and Web server settings 
error_reporting(E_ALL | E_STRICT); 
date_default_timezone_set("America/Toronto");  // Set the default timezone 
$_SERVER['SERVER_NAME'] = 'http://myserver';  // Set Web Server name 

// Process the Include Path to allow the additional application to be set. 
$IncludePaths = explode(PATH_SEPARATOR, get_include_path()); 
$NewIncludePaths = array_merge($IncludePaths, array(dirname(__FILE__))); 
set_include_path(implode(PATH_SEPARATOR, array_unique($NewIncludePaths))); // Update Include Path 

//define('PHPUNIT_RUNNING', 1); // Indicate to the code that Automated Testing is running. 
?> 
+0

しかし、このように、私のコードの中に* unsafe * 'date()'があると、警告を発するでしょうか? – albertedevigo

+0

@simbirsk TimeZoneがPHPで設定されているので、私はそれを信じません。この設定は、INIファイルにタイムゾーンを設定した場合と同じです。 –

+1

これはまさに問題です。可能であれば、自分のコードによって投げられた警告をマスクしたくありません。 – albertedevigo

関連する問題