【问题标题】:DomDocument::loadHTML() error during phpunit test executionphpunit 测试执行期间的 DomDocument::loadHTML() 错误
【发布时间】:2010-06-11 19:50:55
【问题描述】:

我目前正在尝试针对我的 zend 框架控制器编写一些单元测试。当我运行以下代码时,我收到此错误:

public function testListActionShouldContainListTable()
    {

        $this->loginToSystem();

        $uri = $this->_uriBase . 'campaign/list';
        $_SERVER["REQUEST_URI"] = $uri;

        $this->dispatch('/campaign/list');
        $this->assertController('campaign');
        $this->assertAction('list');
        $this->assertQueryCount('#list',1);
    }


CampaignControllerTests::testListActionShouldContainListTable
DOMDocument::loadHTML(): ID alrt already defined in Entity, line: 36

使用任何 assertQuery 和 assertQueryContains 方法都会发生这种情况。我已经四处搜索,但并没有真正找到一个很好的答案来解释为什么它不允许我找到这个 html 节点或如何解决这个错误。

提前感谢您的帮助!

【问题讨论】:

    标签: php unit-testing zend-framework


    【解决方案1】:

    确保文件有效。您的 HMTL 文档中有重复的 ID。

    【讨论】:

      【解决方案2】:

      调度生成的 HTML 是错误的(看起来它有两个 id 被分配给一个标签)。这不是您的测试错误(它工作正常),这是您的测试生成的 html 输出中的错误...

      【讨论】:

      • 我已经完成了 $this->getResponse->outputBody() 和 getBody() 的回显,并且找不到该 id 的重复项。我尝试过 css 搜索“body”、“div”以及 xpath 搜索,它们都产生相同的错误。当我删除 assertQuery 调用时,测试通过了。
      • 寻找超过 1 个具有相同 id 的元素,或具有超过 1 个 id 属性的元素...
      • 谢谢你是对的。在我停止忽略 dup id 之前,只花了 2 次标记。
      猜你喜欢
      • 2012-02-27
      • 2012-05-18
      • 2013-07-17
      • 1970-01-01
      • 2012-12-13
      • 1970-01-01
      • 2013-08-06
      • 2018-05-05
      • 2012-12-18
      相关资源
      最近更新 更多