通过 composer 安装多个版本的 PHPUnit

Posted

技术标签:

【中文标题】通过 composer 安装多个版本的 PHPUnit【英文标题】:Install multiple version of PHPUnit via composer 【发布时间】:2015-01-21 07:56:43 【问题描述】:

我正在使用ZendFramework 1.x & 2.x,不幸的是ZendFramework 1.x 仅支持phpUnit 3.xZend Framework 2.x 需要PHPUnit 4.x

为此我想安装 2 个版本的 PHPUnit,这是我尝试过的 composer.json 文件。


    "repositories": [
        "type": "pear",
        "url": "http://pear.symfony-project.com"
    ,
        "type": "pear",
        "url": "http://pear.phpunit.de"
    ],
    "require-dev": 
        "pear-pear.phpunit.de/PHPUnit": "3.4.*",
        "phpunit/phpunit": "*"
    

我收到以下消息。

跳过安装 phpunit/phpunit 包的 bin phpunit: name 与现有文件冲突

vendor/bin 目录中安装时,我可以告诉作曲家使用不同的名称吗?例如"pear-pear.phpunit.de/PHPUnit": "3.4.*" 使用vendor/bin/pu34 & "phpunit/phpunit": "*" 使用vendor/bin/pu

是否可以在作曲家中做到这一点?

【问题讨论】:

【参考方案1】:

Composer 不支持安装multiple versions of the same package。

您唯一能做的就是安装一个(或两个)作为phar。但随后它们将不会在composer.json 中定义。

【讨论】:

【参考方案2】:

我会挑战 Zend Framework 1 仅支持 PHPUnit 3.x 的假设。

我在 3.7 和 4.0 之间看到的变化在您通常工作的领域(即PHPUnit_Framework_TestCase)中并没有真正突破。改变的是听众等的所有东西,现在必须对“风险测试”的新概念做出反应,但我不知道 Zend Framework 会使用任何东西。

我想说两件事:

    支持PHPUnit的版本不是Zend Framework,应该是你。您负责编写测试,如果应用程序从 ZF1 迁移到 ZF2,您还应该迁移测试集成。如果这意味着更改 Zend_Test_PHPUnit_ControllerTestCase 以使其与 PHPUnit 4 一起使用,那就去吧! :) 请尽量不要再使用 PHPUnit 或 Symfony 的 PEAR 分发渠道。这些将在一段时间内关闭,

【讨论】:

谢谢,我可以找到“Zend_Test_PHPUnit_ControllerTestCase”的修复程序,使其与 PHPUnit 4.0 兼容。 @IbrahimAzharArmar 您是否找到了使 Zend_Test_PHPUnit_ControllerTestCase 与新版本的 PHPUnit 兼容的修复程序?如果是这样,你能和我们分享一下吗? @IbrahimAzharArmar 谢谢老兄!事实证明,较新版本的 ZF1 (1.12.7+) 已更新为支持比 3.4 更新的 PHPUnit 版本。我正在使用 4.1,这似乎也可以。发现这篇文章的其他人可以read more here。

以上是关于通过 composer 安装多个版本的 PHPUnit的主要内容,如果未能解决你的问题,请参考以下文章

使用composer安装多个包?

docker compose线下安装

如何通过composer安装laravel框架

Windows下通过Composer安装Yii2

最好的composer 安装方式 window 版本

docker compose的使用--在线安装未完成