2011-02-05 7 views
0

私はいくつかのテストを試みましたが、cakephpはtest_ {tablename}テーブルを作成しませんでした!彼は元のテーブルを使用しようとしています。 データベースの設定:CakePHPはテストテーブルを作成しません

var $test = array(

     'driver' => 'mysql', 
     'persistent' => false, 
     'host' => '127.0.0.1', 
     'login' => 'root', 
     'password' => '', 
     'database' => 'tests_clubpets', 
     'encoding' => 'utf8' 
); 

フィクス:

class AdminFixture extends CakeTestFixture { 
    var $name = 'Admin'; 

    var $fields = array(
     'id' => array('type' => 'integer', 'null' => false, 'default' => NULL, 'key' => 'primary'), 
     ... 
     'tableParameters' => array('charset' => 'utf8', 'collate' => 'utf8_general_ci', 'engine' => 'InnoDB') 
    ); 

    var $records = array(
     array(
      'id' => 1, 
      'nome' => 'Lorem ipsum dolor sit amet', 
      ... 
    ); 
} 

モデル:間違っている可能性が何

class AdminTestCase extends CakeTestCase { 
    var $fixtures = array('app.admin'); 

    function startTest() { 
     $this->Admin =& ClassRegistry::init('Admin'); 
    } 

    function endTest() { 
     unset($this->Admin); 
     ClassRegistry::flush(); 
    } 

} 

答えて

0

$ testデータベース接続を作成すると、cakeはそのデータベース内のテーブルを作成しようとしています。あなたのコードによるとtests_clubpetsにあるはずです。データベースが作成されていることと、そのユーザーがテーブルに対するアクセス許可を持っていることを確認してください。また、あなたがTEST_ {テーブル名}という名前のテーブルを持っているしたい場合は、使用を任意のtypeoの

0

をしなかったチェック:

'prefix' => 'test_',