2013-09-12 6 views
2

Я пытаюсь изучить Codeception и использую его с Yii (который я тоже новичок).Ошибка кода генерации кода

Прямо из коробки у меня возникли проблемы с запуском тестов. Я прошел через quickstart guide и когда я запускаю его через терминал, я получаю эту ошибку:

Codeception PHP Testing Framework v1.6.6 
Powered by PHPUnit 3.7.24 by Sebastian Bergmann. 

    [Exception]                                   
    DateTime::__construct(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date 
    _default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the tim 
    ezone identifier. We selected 'America/Chicago' for 'CDT/-5.0/DST' instead                   

Теперь, я использую MAMP, и установить часовой пояс в моем файле php.ini. Я также попытался вручную установить его в файле index.php с _default_timezone_set('America/Chicago');, и я до сих пор получаю то же сообщение.

Как я использую Yii, я попытался включить модуль Yii для Codeception, но это, похоже, не имеет никакого значения.

Update

Я попытался установить codeception на проект по нестандартным юй, так прямо вперед веб-сайт и я получаю ту же самую ошибку, что и выше.

+0

Вы можете попробовать правильную функцию: 'date_default_timezone_set' (обратите внимание, как предыдущая строка заканчивается в вашем сообщении об ошибке, возможно, из-за размера терминала). – kekkis

ответ

0

Хотя да, проблема в файле php.ini, в конечном счете, моя проблема заключалась в использовании php прямо из коробки на Mac. По-видимому, установка по умолчанию (в/usr/bin) - это то, что используется с терминала, а не установка PHP с mac. Кроме того, эта установка по умолчанию не имеет связанного файла php.ini.

я нашел следующую инструкцию из форума для Yii, который также играет и оказался та же ошибка:

A note on PHP and Mac OSX: 
A version of PHP4 comes bundled on Mac OSX and is typically what is executed when you try the php command from the command line. You need to have the php command execute a version of PHP5.x or higher. Usually, you have already installed a version of PHP5.x or higher, but need to tell the php command to execute the newer version rather than the older one. There are certainly many ways to achieve this, but here is one: 
at any terminal prompt, type in: 
prompt>which php 
this should tell you where the OS is looking for the php command 
mine tells me /usr/bin/php 
if I navigate to /usr/bin and issue an ls *php* I will see three files 
php 
php-config 
phpize 
These are all for the bundled version PHP4.x 
rename these files to use a 4 in their names, to remember these are the executables for PHP4 
mv php php4 
mv php-config php-config4 
mv phpize phpize4 
Then, create sym links for each of these these to point to the PHP5.x or higher version you have installed. In my case these are located in /usr/local/apache/php/bin. So I would issue from the /usr/bin directory 
ln -s [absolute path to your php5.x] php 
and similarly for the other files. 
+0

Рекомендация: Не используйте dev ENV, который не совпадает с вашим производством ENV. IE: Используйте экземпляр VM/vagrant/docker для размещения вашего приложения. Это сохраняет равновесие между средами и предотвращает будущие проблемы: «Я не знаю, почему он не работает в производстве, он работает на машине». –

6

У меня была эта же проблема и выяснилось, что настройка date.timezone в php.ini решила проблему.

  1. Open php.ini (на Mac это /private/etc/php.ini)
  2. Искать 'часовой пояс'. Первым ударом должна быть эта настройка
  3. Раскомментировать линию ;date.timezone = (удалить;)
  4. Добавить свой часовой пояс в виде строки, например. "America/New_York", так что полная линия читает date.timezone = "America/New_York"
  5. Сохраните файл и перезапустите ваш веб-сервер

Список опций часовых поясов здесь: http://www.php.net/manual/en/timezones.php

Надежда, что помогает.

Смежные вопросы