2011-12-05 3 views
12

Sto provando a testare unitamente la mia applicazione Zend Framework usando PHPUnit 3.6.4. Ottengo il seguente errore quando provo questo comando nel mio prompt dei comandi.Dichiarazione di Zend_Test_PHPUnit_Constraint_DomQuery :: evaluate() dovrebbe essere compatibile con quella di PHPUnit_Framework_Constraint :: evaluate()

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. 

Perché sto ricevendo questo errore? Cos'è che ho fatto di sbagliato? Per favore aiutatemi

risposta

19

Le applicazioni di Zend Framework 1 al momento, e possibilmente per un po 'di tempo, funzionano correttamente solo usando PHPUnit 3.5.x.

Vedere downgrade phpunit 3.6 to 3.5.15 su come effettuare il downgrade a 3.5.

Zend Framework 2 supporterà nuovamente la versione corrente di PHPUnit.

+0

le sue grazie di lavoro :) – Srivathsa

+2

Vai a questa [problema] (http: //framework.zend. it/issues/browse/ZF-11828) in ZF Bugtracker. Risoluzione –

+0

: non risolverà – max4ever

2

Mai pensato che risponderò a un post di 2 anni, ho incontrato il verry stesso problema e ho trovato il sito this da un gentiluomo che ha modificato la libreria Zend e ha funzionato per me (non potevo effettuare il downgrade ...) Hope vi aiuterà qualcuno :-)

4

è possibile sopprimere l'errore di incompatibilità versione usando il comando @expectedException phpdoc:

/** 
* 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); 
}