我正在尝试使用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配置中定义。
我希望你能帮我解决这个小问题。
答案 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/