2009-10-14 2 views
2

Перед установкой PHPUnit на моем компьютере Ubuntu, я думал, что у меня правильно настроен zf.sh. Я смог создать новый проект без каких-либо проблем. Теперь, начиная с установки PHPUnit, все работает неправильно.Проблемы с CLI Zend_Tool, порождающие фатальные ошибки

Когда я пытаюсь создать тестовый проект, я получаю это:

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 

Что мне нужно сделать, чтобы заставить его работать снова?

Обновление: Я думаю, что я понимаю причину, по которой это происходит. В PHPUnit 3.4.0 есть класс с тем же именем, что и Zend Framework 1.9.3. Apparently it is a known issue. Но как я могу обойти это, чтобы снова использовать Zend_Tool? Могу ли я понизить PHPUnit? Поможет ли это решить проблему?

Обновление:This tutorial упоминает что-то об установке патча diff.

+0

Другое решение описано в этом [в блоге] (http://www.nexik.net/zf-for-total-beginners/apache-zendframework- and-phpunit /) – Andy

ответ

2

Я нашел временный обходной путь:

  • Редактировать PHPUnit/Framework.php, недалеко от линии 70:

    require 'PHPUnit/Framework/TestSuite/DataProvider.php'; 
    
  • Изменить на:

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

Этот вероятно, не является долговременным исправлением, но оно устраняет непосредственный симптом.


Update 2009-11-20: Я только что видел коммита в ZF 1.9 ветви, что претензии решить эту issue. Предположительно, исправление будет в следующем точечном релизе (1.9.6) и последующих последующих релизах (1.10.0 и более поздних).

+0

круто, спасибо! гораздо легче понять проблему. приятный информация. – Andrew

0

Другое решение, которое не требует изменения какого-либо 3-го партийного кода, копирует папку PHPUnit в местоположение за пределами include_path и создает символическую ссылку на новое место.

Для получения дополнительной информации по этому вопросу, посмотрите здесь: Zend_Tool troubles PHPUnit