2014-05-03 37 views
0

我想用PHPUnit测试我的Yii应用程序并获取CDbException。当我使用Yii :: app() - > db时,我得到了相同的异常。Yii单元测试CDbException

我的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 

当我打电话给我的浏览器指数test.php的,Yii的正确连接到测试数据库,我已经在test.php配置中定义了。

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

+0

在主要应用中这个连接工作正常吗? – Alex

+1

我认为必须有路径问题,请首先确定它。 –

+0

@ Alex:在main和test应用程序中,当我在浏览器index.php(localhost/project/index.php)中调用开发数据库时,当我调用index-test.php(localhost/project/index-test。 PHP)测试数据库连接。 @Anil Bhattarai100:你的意思是什么意思与路径和女巫路径?在bootstrap.php或phpunit.xml或其他地方的路径? – mrbirne

回答

0

我想出了这个问题两个解决方案:

首先加入使用XAMPP PHP运行PHPUnit的

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

二:

$ /pathtoxampp/bin/php phpunit /yourtestpath/ 
的的mysql.sock到test.php的配置
1

有一次我也遭遇过类似的问题。以下对我有帮助。试试这个曾经 的解决方案是在PHP-cli.ini下面添加一行:

延长= php_pdo_mysql.dll

+0

我已经添加了这一行,但我得到这个异常: PHP的警告:PHP启动:无法加载动态库 '/usr/lib/php5/20121212/php_pdo_mysql.dll' -/usr/lib目录/ PHP5/20121212/php_pdo_mysql .dll文件:无法打开共享对象文件:没有这样的文件或目录在未知在线0 – mrbirne

+3

请下载该文件,并将该文件的路径需要通过定位你的错误 –

+3

http://www.dlldll.com/php_pdo_mysql问。 dll_download.html –