通过 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.x
和Zend 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的主要内容,如果未能解决你的问题,请参考以下文章