Yii单元测试CDbException

时间:2014-05-03 21:05:10

标签: php mysql phpunit yii

我正在尝试使用PHPUnit测试我的Yii-Application并获得CDbException。当我使用Yii :: app() - > db。

时,我得到了相同的异常

我的PHP测试代码:

$connection=new CDbConnection('mysql:host=localhost;dbname=testdb','user','pw');
$sql = "SELECT * FROM Site";
$command=$connection->createCommand($sql);
$rowCount=$command->execute();
echo $rowCount;

例外:

CDbException: CDbConnection failed to open the DB connection.

/opt/lampp/htdocs/cms/framework/db/CDbConnection.php:388
/opt/lampp/htdocs/cms/framework/db/CDbConnection.php:330
/opt/lampp/htdocs/cms/framework/db/CDbConnection.php:480
/opt/lampp/htdocs/cms/protected/tests/unit/TestTest.php:26

当我在浏览器中调用index-test.php时,Yii正确连接到测试数据库,我已在test.php配置中定义。

我希望你能帮我解决这个小问题。

2 个答案:

答案 0 :(得分:1)

一旦我也遇到了类似的问题。以下对我有帮助。试一试 解决方案是在php-cli.ini中添加以下行:

延长= php_pdo_mysql.dll

答案 1 :(得分:0)

我已经为这个问题提出了两个解决方案:

首先将mysql.sock添加到test.php config:

'db'=>array(
      'connectionString'=>'mysql:host=localhost;dbname=trackstar_dev;unix_socket=/Applications/MAMP/tmp/mysql/mysql.sock',
      'username'=>'root',
      'password'=>'root',
      'emulatePrepare'=>true
),

第二次使用xampp php运行phpunit:

$ /pathtoxampp/bin/php phpunit /yourtestpath/