2012-03-31 1 views
0

Ich benutze DB Anmeldung in Cake 2.1, die funktioniert super.CakePHP Logging auf Live-DB während Unit Testing

Das Problem, das ich habe, ist, wenn Unit-Tests ausgeführt werden, alle Protokolle werden immer noch an die Live-Datenbank gesendet, anstatt die Test-Datenbank.

Alle anderen db-Interaktionen werden mit Ausnahme der Protokollierung getestet.

Ich habe eine Protokollvorrichtung erstellt und in den Testfall importiert.

Hier ist meine Datenbank-Logger (/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); 
    } 
} 

Ich bin sicher, dass ich hier einige grundlegende Einstellung fehlt bin, aber ich kann diese für das Leben nicht herausfinden, von mir.

+0

niemand bekam etwas dazu? –

+0

Ich habe das gleiche Problem. Hast du es repariert? – Alvaro

+0

Nein. Kann nirgends eine Antwort erhalten. Ich habe festgestellt, dass jede DB-Interaktion in Tests in die Produktions-DB gehen wird, wenn ich keine Fixtures für ein bestimmtes Modell definiert habe, aber diese hat mich über den Haufen geworfen. –

Antwort