Ведение журнала CakePHP в Live DB во время модульного тестирования

Я использую ведение журнала БД в Cake 2.1, и это прекрасно работает.

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

Все остальные взаимодействия с базой данных проходят проверку, кроме ведения журнала.

У меня есть приспособление журнала, созданное и импортированное в тестовый пример.

Вот мой регистратор базы данных (/Lib/Log/Engine/DatabaseLogger.php)

App::uses('CakeLogInterface', 'Log');

class DatabaseLogger implements CakeLogInterface
{
    public function __construct($options = array() )
    {
        App::import('Model', 'Log');
        $this->Log = new Log;
    }

    public function write($type, $message)
    {
        $this->Log->create();

        $log['type'] = ucfirst($type);
        $log['date'] = date('Y-m-d H:i:s');
        $log['message'] = $message;

        return $this->Log->save($log);
    }
}

Я уверен, что мне не хватает какой-то базовой настройки, но я не могу понять это на всю жизнь.


person John Crenshaw    schedule 31.03.2012    source источник
comment
Ни у кого нет ничего по этому поводу?   -  person John Crenshaw    schedule 05.04.2012
comment
Я с той же проблемой. Вы исправили это?   -  person Alvaro    schedule 12.04.2012
comment
Неа. Нигде не могу получить ответ. Я заметил, что любое взаимодействие с БД в тестах перейдет в производственную БД, если у меня нет Fixtures, определенных для конкретной модели, но это поставило меня в тупик.   -  person John Crenshaw    schedule 17.04.2012


Ответы (1)


Что ж, в моем случае проблема возникла из-за плохой инициализации конструктора. Вы можете проверить решение для обновления здесь: Как выбрать тест БД cakePHP

А здесь: Как правильно переопределить конструктор модели в CakePHP< /а>

person Alvaro    schedule 17.04.2012