PHPUnit抛出“警告:日期():它不安全......”

时间:2013-09-05 16:16:15

标签: phpunit warnings

运行phpunit --coverage-html时,我收到有关时区的众所周知的警告。

  

PHP警告:date():依赖系统的时区是不安全的   设置。您必需使用date.timezone设置或   date_default_timezone_set()函数。如果您使用其中任何一个   方法,你最有可能仍然得到这个警告   拼写错误的时区标识符。我们为时区选择了“UTC”   现在,请设置date.timezone以选择您的时区。

一切都按预期工作,但它真的很烦人。

当然,我可以通过更改php.ini来解决此问题,但如果可能的话,我宁愿避免使用它,以便保留一些服务器不可知论。另外,我不希望在我的可测试代码触发时阻止出现此警告。

有没有办法只为内部PHPUnit操作定义默认时区?

1 个答案:

答案 0 :(得分: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.
?>