Регистрация CakePHP в Live DB во время модульного тестирования - PullRequest
0 голосов
/ 31 марта 2012

Я использую ведение журнала БД в 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);
    }
}

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

1 Ответ

0 голосов
/ 17 апреля 2012

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

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

...