【发布时间】:2011-04-05 04:53:37
【问题描述】:
我正在我的本地服务器(ubuntu 10.04 LTS Lucid Lynx)上开发一个使用 postgre 数据库的 ZF 项目。
我正在尝试使用 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..');
}
但它在第一次断言时失败:
断言使用的最后一个控制器失败 是 "index"我发现这个question,作者遇到了同样的问题:他通过将 php_pdo_pgsql.dll 库添加到他的第二个 php.ini 来解决它。但他在 Windows 上并使用 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 警告:PHP 启动:无法加载动态库 '/usr/lib/php5 /20090626+lfs/msql.so' - /usr/lib/php5/20090626+lfs/msql.so:无法打开共享对象文件:在第 0 行的未知中没有此类文件或目录 PHP 警告:PHP 启动:无法加载动态库 '/usr/lib/php5/20090626+lfs/pdo_pgsql.so' - /usr/lib/php5/20090626+lfs/pdo_pgsql.so:未定义符号:未知上的 php_pdo_register_driver第 0 行 PHP 警告:模块 'pgsql' 已在第 0 行的未知中加载现在我真的没有想法了......
谁能指出我正确的方向?
谢谢
【问题讨论】:
-
在我看来,发生了一些错误,它分派到错误控制器而不是索引控制器。您的索引控制器中有什么代码?
-
你说得对,罗伯特:我是 afk,然后我突然想到“f**k,我没有检查错误是否不在我的代码中”。事实证明,我的测试数据库的一张表中缺少一列。我添加了它,现在很好。由于我在过去几个小时试图让 phpunit 工作,我仍在考虑一般配置,而不是我的代码。为此事道歉。我现在该怎么办:我能给你正确的答案吗?我应该自己回答吗?问这个问题我觉得自己像个菜鸟,不要先检查:( ...
-
大卫,你能不能让这个错误消息“断言上次使用的控制器失败”是“索引”变得有更多关于错误的有用信息?例如:在你的情况下,消息应该是“列 blabla 不存在”。
标签: php unit-testing zend-framework phpunit ubuntu-10.04