我正在使用postgre数据库的ZF项目,在我的本地服务器上(ubuntu 10.04 LTS Lucid Lynx)。
我正在尝试用phpunit运行一个非常简单的测试:
public function testIndexAction() {
$this->dispatch('/');
$this->assertController('index');
$this->assertAction('index');
$this->assertModule('default');
$this->assertXpathContentContains('/html/body/div[1]/div[@id=\'content\']/p', 'Los puntos de mis amigos son mis amigos..');
}
但它在第一次断言时失败并显示以下消息:
断言最后使用的控制器失败<“error”>是“索引”我发现这个question作者有同样的问题:他通过在php_pdo_pgsql.dll库中添加第二个php.ini解决了这个问题。但他在窗户上使用xampp 无论如何我检查了它: /etc/php5/apache2/php.ini 有这3行:
extension=msql.so
extension=pgsql.so
extension=pdo_pgsql.so
我把它们添加到我找到的另一个php.ini文件中: /etc/php5/cli/php.ini 现在,当我运行测试时,它说:PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/msql.so' - /usr/lib/php5/20090626+lfs/msql.so: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626+lfs/pdo_pgsql.so' - /usr/lib/php5/20090626+lfs/pdo_pgsql.so: undefined symbol: php_pdo_register_driver in Unknown on line 0 PHP Warning: Module 'pgsql' already loaded in Unknown on line 0现在我真的没有想法...
答案 0 :(得分:0)
事实证明,我的测试数据库的一个表中缺少一列。我加了它,现在没关系。由于我花了最后几个小时试图让phpunit工作,我仍然在考虑一般配置,而不是我的代码。