2011-12-13 32 views
1

Doctrine ORMを使用して、Zend用のphpunitで単体テストを作成しようとしています。私はZend_Test_PHPUnit_DatabaseTestCaseを拡張するテストクラスを作成しようとするとPHPUnitのを実行するとき、私はメッセージが出ます:「何のオープン接続がありません」Zend + Doctrine + PHPUnit =開いている接続がありません

ここで完全なソースです:

<?php 

class AclTest extends Zend_Test_PHPUnit_DatabaseTestCase 
{ 
    private $_userAdmin; 

    public function setUp() 
    { 
     $this->bootstrap = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini'); 

     $this->_userAdmin = Model_UserTable::getInstance()->findOneByUsername('admin'); 

     parent::setUp(); 
    } 

    protected function getConnection() 
    { 
     $pdo = new PDO('mysql:host=localhost;dbname=mydbname', 'root', 'pwd'); 
     return $this->createDefaultDBConnection($pdo, 'testdb'); 
    } 

    protected function getDataSet() 
    { 
     return null; 
    } 


    public function testHasProfilPermission() 
    { 
     //execute some tests 

    } 
} 

あなたはどう思いますか?

おかげ

+0

はあなたがそれぞれのどのバージョンを実行していますか? Zend Framework 1.xは最新のPHPUnit 3.6では動作しません。 –

+0

私はZend Framework 1.11.11、Doctrine 1.2.4、PHPUnit 3.4.14およびZFDoctrineブリッジを使用しています – frinux

答えて

0

は、これをしてくださいしてみてください。

class AclTest extends Zend_Test_PHPUnit_DatabaseTestCase 
{ 
    private $_userAdmin; 
    /** @var PDO **/ 
    protected $pdo; 

    public function __construct() 
    { 
     $this->pdo = new PDO('mysql:host=localhost;dbname=mydbname', 'root', 'pwd'); 
    } 

    public function setUp() 
    { 
     $this->bootstrap = new Zend_Application(APPLICATION_ENV, APPLICATION_PATH . '/configs/application.ini'); 

     $this->_userAdmin = Model_UserTable::getInstance()->findOneByUsername('admin'); 

     parent::setUp(); 
    } 

    protected function getConnection() 
    { 
     return $this->createDefaultDBConnection($this->pdo, 'testdb'); 
    } 
} 
関連する問題