【问题标题】:PHPunit Comaptiablity issue with ZendZend 的 PHPunit 兼容性问题
【发布时间】:2012-11-08 08:41:15
【问题描述】:

我已经用 Zend Framework 配置了 PHPUnit。当我运行命令时

phpunit --configuration phpunit.xml

我收到类似的失败消息

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

我有以下assert 函数

$this->assertModule($urlParams['module']);
$this->assertController($urlParams['controller']);
$this->assertAction($urlParams['action']);
$this->assertResponseCode(200);

我搜索了问题并找到了许多相关的解决方案,例如here。我检查了我的 PHPUnit 版本,它是 3.7.9,而 Zend Framework 1 只能与 PHPUnit 3.5.x 一起正常工作。

然后我尝试按照here 的说明降级PHPUnitun-installation 进程成功运行。但是当我去安装降级版本并运行命令时

pear install phpunit/PHP_CodeCoverage-1.0.2

它会产生错误

phing/phing requires package "phpunit/PHP_CodeCoverage" (version >= 1.1.0). phpunit/PHP_CodeCoverage cannot be installed, Conflicts with installed packages. 

有人告诉我如何处理这种情况?如何使安装的 PHPUnit 版本与 Zend Framework 1.X 兼容或如何正确降级我的 PHPUnit??

最好的问候。

【问题讨论】:

    标签: zend-framework phpunit pear phing zend-test


    【解决方案1】:

    您始终可以安装 2 个不同的 PHPUnit 实例。使用 pear 安装最新版本的 PHPUnit 以使 Phing 工作,并使用 Composer 安装 PHPunit 3.5.x 版 - 按照指示 here

    如果一切都正确完成,您将拥有一个系统范围的最新版本 PHPUnit,并且在您的项目文件夹vendors/bin 中,您将拥有 PHPunit 3.5.x。使用第二个在 ZF1 中构建测试。

    【讨论】:

    • 这意味着我将创建一个文件夹 vendors/bin 并在该文件夹中安装 phpunit 3.5.x?
    • 以及如何安装视图作曲家?意味着我将在上面的目录中创建一个compsor.json 文件并将他们提供的代码放在那里?
    • 您能否更深入地阐述您的答案?
    • 所有设置说明都可以在上面的链接中找到 - 但是是的,您必须下载 composer.phar,使用您的依赖项创建 composer.json(只需使用 PHPUnit 中给出的示例安装页面),然后运行php composer.phar install
    • @Roberto ,上面指向 PHPUnit 文档的链接特别指出“PHPUnit 3.7 中添加了对 Composer 和 PHP 存档 (PHAR) 的支持(并且已知自 PHPUnit 3.7.5 以来稳定)。早些时候无法通过这些分发渠道获得 PHPUnit 版本。” .. 因此,您不能将 composer 用于 3.5 .
    猜你喜欢
    • 2012-08-16
    • 1970-01-01
    • 2010-11-13
    • 1970-01-01
    • 2016-08-28
    • 2014-02-12
    • 2011-10-04
    • 2013-03-28
    相关资源
    最近更新 更多