2009-10-14 6 views
2

Avant d'installer PHPUnit sur ma machine Ubuntu, je pensais que zf.sh était correctement configuré. J'ai été capable de créer un nouveau projet sans aucun problème. Maintenant, depuis l'installation de PHPUnit, tout ne fonctionne pas correctement.Problèmes de CLI Zend_Tool, en lançant des erreurs fatales

Lorsque je tente de créer un projet de test, je reçois ceci:

Fatal error: Cannot redeclare class PHPUnit_Framework_TestSuite_DataProvider in /usr/share/php/PHPUnit/Framework/TestSuite/DataProvider.php on line 64 

Call Stack: 
0.0011  110200 1. {main}() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/bin/zf.php:0 
0.0011  110320 2. zf_main() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/bin/zf.php:23 
0.0113  685448 3. zf_run() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/bin/zf.php:36 
0.0113  685568 4. Zend_Tool_Framework_Client_Console::main() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/bin/zf.php:214 
0.0114  686044 5. Zend_Tool_Framework_Client_Abstract->dispatch() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/library/Zend/Tool/Framework/Client/Console.php:96 
0.0114  686164 6. Zend_Tool_Framework_Client_Abstract->initialize() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/library/Zend/Tool/Framework/Client/Abstract.php:209 
0.0152  866128 7. Zend_Tool_Framework_Loader_Abstract->load() /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/library/Zend/Tool/Framework/Client/Abstract.php:118 
0.4374 2729116 8. include_once('/usr/share/php/PHPUnit/Framework/TestSuite/DataProvider.php') /opt/ZendFramework/ZendFramework-1.9.3PL1-minimal/library/Zend/Tool/Framework/Loader/Abstract.php:90 

Que dois-je faire pour le faire fonctionner à nouveau?

Mise à jour: Je pense que je comprends la raison pour laquelle cela se produit. Dans PHPUnit 3.4.0, il existe une classe avec le même nom que Zend Framework 1.9.3. Apparently it is a known issue. Mais comment puis-je contourner cela pour pouvoir utiliser Zend_Tool à nouveau? Puis-je rétrograder PHPUnit? Cela réglera-t-il le problème?

Mise à jour:This tutorial mentionne quelque chose à propos de l'installation d'un patch diff.

+0

Une autre solution décrite dans ce ([blog] http://www.nexik.net/zf-for-total-beginners/apache-zendframework- et-phpunit /) – Andy

Répondre

2

J'ai trouvé une solution temporaire:

  • Modifier PHPUnit/Framework.php, près de la ligne 70:

    require 'PHPUnit/Framework/TestSuite/DataProvider.php'; 
    
  • Modification:

    require_once 'PHPUnit/Framework/TestSuite/DataProvider.php'; 
    

Cette n'est probablement pas la solution à long terme, mais il résout le symptôme immédiat.


Mise à jour 2009-11-20: Je viens de voir un commettras à la branche ZF 1.9 qui prétend résoudre ce issue. On peut supposer que le correctif sera dans le prochain point-release (1.9.6) et dans les versions mineures suivantes (1.10.0 et plus tard).

+0

cool, merci! beaucoup plus facile de comprendre le problème. bonne explication. – Andrew

0

Une autre solution, qui ne nécessite aucun changement de code tiers, consiste à copier le dossier PHPUnit dans un emplacement situé en dehors du include_path et à créer un lien symbolique vers le nouvel emplacement.

Pour plus de détails sur cette question ont un coup d'oeil ici: Zend_Tool troubles PHPUnit