【问题标题】:PHPUnit: Failed asserting last controller used <"error">PHPUnit:断言使用的最后一个控制器失败<“错误”>
【发布时间】: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


【解决方案1】:

原来我的测试数据库的一张表中缺少一列。我添加了它,现在很好。由于我在过去的几个小时里试图让 phpunit 工作,所以我仍在考虑一般配置,而不是我的代码。

【讨论】:

    猜你喜欢
    • 2011-08-27
    • 2015-03-03
    • 2012-01-13
    • 1970-01-01
    • 2017-10-26
    • 2012-11-28
    • 1970-01-01
    • 2011-11-21
    相关资源
    最近更新 更多