2

在我的 Ubuntu 机器上安装 PHPUnit 之前,我认为我已经正确设置了 zf.sh。我能够毫无问题地创建一个新项目。现在,自从安装了 PHPUnit,一切都不正常了。

当我尝试创建一个测试项目时,我得到了这个:

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 同名的类。显然这是一个已知问题。但是我怎样才能解决这个问题,以便我可以再次使用 Zend_Tool 呢?我可以降级 PHPUnit 吗?这能解决问题吗?

更新: 本教程提到了一些关于安装差异补丁的内容。

4

2 回答 2

2

我找到了一个临时解决方法:

  • 编辑 PHPUnit/Framework.php,在第 70 行附近:

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

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

这可能不是长期解决方案,但它可以解决直接症状。


2009-11-20 更新:我刚刚看到对 ZF 1.9 分支的提交,声称可以解决此问题。据推测,该修复程序将在下一个版本(1.9.6)和后续的次要版本(1.10.0 及更高版本)中。

于 2009-10-24T01:08:54.347 回答
0

另一个不需要更改任何第 3 方代码的解决方案是将 PHPUnit 文件夹复制到外部位置,include_path并创建指向新位置的符号链接。

有关此问题的详细信息,请查看此处:Zend_Tool 困扰 PHPUnit

于 2009-11-13T02:16:10.943 回答