2013-09-05 11 views
8

Po uruchomieniu phpunit --coverage-html otrzymuję dobrze znane ostrzeżenie o strefach czasowych .PHPUnit rzuca "Ostrzeżenie: data(): To nie jest bezpieczne ..."

PHP Ostrzeżenie: date(): Nie można bezpiecznie polegać na ustawieniach strefy czasowej systemu . Jesteś wymagany, aby użyć ustawienia date.timezone lub date_default_timezone_set(). Jeśli używałeś któregokolwiek z tych metod, a wciąż otrzymujesz to ostrzeżenie, najprawdopodobniej błędnie wpisano identyfikator strefy czasowej. Wybraliśmy teraz strefę czasową "UTC" dla , ale proszę ustawić date.timezone, aby wybrać swoją strefę czasową.

Wszystko działa zgodnie z oczekiwaniami, ale staje się bardzo denerwujące.

Oczywiście, mogę rozwiązać ten problem, zmieniając mój php.ini, ale wolałbym go uniknąć, jeśli to możliwe, aby zachować pewne agnostycyzm serwera . Ponadto nie chcę, aby to ostrzeżenie się pojawiło, jeśli zostanie wywołane przez mój testowalny kod.

Czy istnieje sposób zdefiniowania domyślnej strefy czasowej tylko dla wewnętrznych operacji PHPUnit?

Odpowiedz

12

Ustawiam strefę czasową w pliku bootstrap.php.

<?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

Ale w ten sposób, jeśli w moim kodzie znajduje się * niebezpieczna * 'data()', czy wygeneruje alert? – albertedevigo

+0

@simbirsk Nie wierzę, że tak będzie, ponieważ strefa czasowa jest teraz ustawiona w PHP. To ustawienie jest takie samo jak ustawienie strefy czasowej w pliku INI. –

+1

To jest dokładnie problem, nie chcę zamaskować żadnego ostrzeżenia wygenerowanego przez mój kod, jeśli to możliwe. – albertedevigo

Powiązane problemy