【问题标题】:Declaration of Zend_Test_PHPUnit_Constraint_DomQuery::evaluate() should be compatible with that of PHPUnit_Framework_Constraint::evaluate()Zend_Test_PHPUnit_Constraint_DomQuery::evaluate() 的声明应该与 PHPUnit_Framework_Constraint::evaluate() 的声明兼容
【发布时间】:2012-01-13 10:54:01
【问题描述】:

我正在尝试使用 PHPUnit 3.6.4 对我的 Zend Framework 应用程序进行单元测试。当我在命令提示符中尝试此命令时出现以下错误。

C:\xampp\htdocs\testsample\tests>phpunit --configuration phpunit.xml
PHPUnit 3.6.4 by Sebastian Bergmann.

Configuration read from C:\xampp\htdocs\testsample\tests\phpunit.xml

←[31;1mE←[0m←[31;1mE←[0m..

Time: 0 seconds, Memory: 10.00Mb

There were 2 errors:

1) IndexControllerTest::testIndexWithMessageAction
Declaration of Zend_Test_PHPUnit_Constraint_DomQuery::evaluate() should be compatible         
with that of PHPUnit_Framework_Constraint::evaluate()

C:\xampp\htdocs\hive\library\Zend\Test\PHPUnit\Constraint\DomQuery.php:40
C:\xampp\htdocs\hive\library\Zend\Test\PHPUnit\ControllerTestCase.php:512
C:\xampp\htdocs\testsample\tests\application\controllers\IndexControllerTest.php
:14
C:\xampp\php\PEAR\PHPUnit\Framework\TestCase.php:925
C:\xampp\php\PEAR\PHPUnit\Framework\TestCase.php:787
C:\xampp\php\PEAR\PHPUnit\Framework\TestResult.php:649
C:\xampp\php\PEAR\PHPUnit\Framework\TestCase.php:734
C:\xampp\php\PEAR\PHPUnit\Framework\TestSuite.php:772
C:\xampp\php\PEAR\PHPUnit\Framework\TestSuite.php:745
C:\xampp\php\PEAR\PHPUnit\Framework\TestSuite.php:705
C:\xampp\php\PEAR\PHPUnit\TextUI\TestRunner.php:325
C:\xampp\php\PEAR\PHPUnit\TextUI\Command.php:187
C:\xampp\php\PEAR\PHPUnit\TextUI\Command.php:125
C:\xampp\php\phpunit:44

2) IndexControllerTest::testIndexNoMessageAction
Declaration of Zend_Test_PHPUnit_Constraint_ResponseHeader::evaluate() should be
 compatible with that of PHPUnit_Framework_Constraint::evaluate()

C:\xampp\htdocs\hive\library\Zend\Test\PHPUnit\Constraint\ResponseHeader.php:400

C:\xampp\htdocs\hive\library\Zend\Test\PHPUnit\ControllerTestCase.php:769
C:\xampp\htdocs\hive\library\Zend\Test\PHPUnit\ControllerTestCase.php:769
C:\xampp\htdocs\testsample\tests\application\controllers\IndexControllerTest.php
:22
C:\xampp\php\PEAR\PHPUnit\Framework\TestCase.php:925
C:\xampp\php\PEAR\PHPUnit\Framework\TestCase.php:787
C:\xampp\php\PEAR\PHPUnit\Framework\TestResult.php:649
C:\xampp\php\PEAR\PHPUnit\Framework\TestCase.php:734
C:\xampp\php\PEAR\PHPUnit\Framework\TestSuite.php:772
C:\xampp\php\PEAR\PHPUnit\Framework\TestSuite.php:745
C:\xampp\php\PEAR\PHPUnit\Framework\TestSuite.php:705
C:\xampp\php\PEAR\PHPUnit\TextUI\TestRunner.php:325
C:\xampp\php\PEAR\PHPUnit\TextUI\Command.php:187
C:\xampp\php\PEAR\PHPUnit\TextUI\Command.php:125
C:\xampp\php\phpunit:44

←[37;41m←[2KFAILURES!
←[0m←[37;41m←[2KTests: 4, Assertions: 10, Errors: 2.
←[0m←[2K
Generating code coverage report, this may take a moment.

为什么会出现这个错误?我做错了什么?请帮帮我

【问题讨论】:

    标签: php zend-framework phpunit


    【解决方案1】:

    Zend Framework 1 应用程序目前(可能在相当长的一段时间内)只能使用 PHPUnit 3.5.x 才能正常运行。

    请参阅downgrade phpunit 3.6 to 3.5.15,了解如何降级到3.5

    Zend Framework 2 将再次支持当前版本的PHPUnit

    【讨论】:

    【解决方案2】:

    从没想过我会回答一个 2 年前的帖子,我遇到了同样的问题,发现 this 网站由一位修改 Zend 库的绅士提供,它对我有用(我无法降级......) 希望它会帮助某人:-)

    【讨论】:

      【解决方案3】:

      您可以使用 phpdoc @expectedException 命令抑制版本不兼容错误:

      /**
       * test bad url
       * @requires PHPUnit 3.5.15
       * @expectedException PHPUnit_Framework_Error_Notice
       * // Zend Framework 1.X cannot use anything greater than PHPUnit 3.5.15
       * */
      public function test_InvalidUrl_wrong_action()
      {
          $this->dispatch('/index/fake');
          $this->assertController('error','should be the error controller');
          $this->assertAction('error','should be the error action');
          $this->assertResponseCode(200);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-30
        • 1970-01-01
        • 1970-01-01
        • 2017-11-07
        • 2018-01-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多