【问题标题】:How do I run multiple versions of PHPUnit on the same machine?如何在同一台机器上运行多个版本的 PHPUnit?
【发布时间】:2012-05-08 16:23:31
【问题描述】:

我正在为一些项目使用 Zend Framework,并希望为它们构建 PHPUnit 测试套件。不幸的是,当前版本(1.11.x)中的 Zend Framework 仅支持 PHPUnit 3.5。同时,我也想开始使用 Symfony 框架,它又支持更新版本的 PHPUnit。那么问题是,如何在我的开发机器上同时运行多个版本的 PHPUnit,而无需安装单独的服务器或类似的东西?

我正在运行 OS X Lion (10.7) 并使用通过 MacPorts 安装的 apache 和 php (5.3.10)。理想情况下,我想最终处于一种我可以简单地输入例如的情况。在终端输入phpunit5执行3.5版本,输入phpunit6执行3.6版本,以此类推。

【问题讨论】:

  • 当供应商 API 强迫我们进入这样的特定版本时,这很糟糕。

标签: php unit-testing phpunit


【解决方案1】:

我建议你查看这篇博文:

如需厨师食谱,请查看我的博文:

如果链接停止工作:

  • pear 支持--installroot 开关
  • 示例:

    pear install --installroot /some/path/phpunit34 pear.phpunit.de/PHPUnit-3.4.15

安装后,您可能需要将 /some/path/phpunit34/usr/bin/ 添加到 $PATH 或创建指向 /usr/bin 的符号链接,如博文所示。

HTH

【讨论】:

  • 谢谢!第一个链接中的说明起到了作用(为什么我在谷歌搜索数小时后仍无法找到它仍然是个谜)。包含路径有点麻烦,直到我意识到我当然需要定义 PHPUnit 框架文件的路径,而不是 php 本身正在使用的路径(命令 pear config-show|grep php_dir 让我有点失望,因为它指向我的 php 二进制文件)。
【解决方案2】:

接受的答案在您安装 phpunit 3.4 时有效,但如果您希望安装 phpunit 3.5(它也可用于 Zend 项目中的单元测试,尽管 Zends 自己的测试可能不会全部通过),您必须稍微遵循不同的路径。在安装 phpunit 之前,您需要单独安装 phpunit 3.5 的依赖项,否则某些依赖项只会强制安装 phpunit 3.6:

先安装(注意 -f 选项,它强制安装特定版本):

sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.symfony-project.com/YAML-1.0.2
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/PHPUnit_Selenium-1.0.1
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/PHP_Timer-1.0.0
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/Text_Template-1.0.0
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/PHPUnit_MockObject-1.0.3
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/File_Iterator-1.2.3
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/PHP_CodeCoverage-1.0.2
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/DbUnit-1.0.0
sudo pear install -f --installroot /your/path/to/PHPUnit35 pear.phpunit.de/PHPUnit-3.5.15

然后按照已接受答案链接中的说明更改包含路径并正确符号链接。

【讨论】:

    【解决方案3】:

    PHPUnit 现在在 https://phar.phpunit.de/ 处为它的所有版本提供捆绑的 PHAR 文件

    只需下载所需的版本并使用以下命令调用它们:

    php phpunit-X.Y.Z.phar  
    

    (其中X.Y.Z 是 PHPUnit 版本)

    可以轻松地为 PHAR 文件添加别名,以使它们在系统范围内可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-09
      • 1970-01-01
      • 2018-01-18
      • 2022-12-04
      • 1970-01-01
      • 2012-03-30
      • 1970-01-01
      相关资源
      最近更新 更多