如何安装PHPUnit 3.5而不是3.6?

时间:2011-10-31 17:05:32

标签: phpunit pear

当前版本的PHPUnit是3.6,但在我更新代码之前,我需要使用3.5.15代替。我在尝试安装3.5.15时遇到了很多麻烦。

我从一个简洁的Zend Server安装开始,它只安装了一些基本的PEAR包。我通道发现了pear.phpunit.de和pear.symfony-project.com。然后我尝试从URL安装3.5.15,但它失败了:

# pear install http://pear.phpunit.de/get/PHPUnit-3.5.15.tgz
downloading PHPUnit-3.5.15.tgz ...
Duplicate package channel://pear.phpunit.de/PHPUnit-3.5.15 found
Duplicate package channel://pear.phpunit.de/PHPUnit-3.6.0 found
install failed

接下来,我尝试从下载的文件进行安装,但也失败了:

# pear install ~/Desktop/PHPUnit-3.5.15.tgz 
Duplicate package channel://pear.phpunit.de/PHPUnit-3.5.15 found
Duplicate package channel://pear.phpunit.de/PHPUnit-3.6.0 found
install failed

然后从PEAR直接...安装3.6而不是我要求的!

# pear install phpunit/PHPUnit-3.5.15
phpunit/PHPUnit can optionally use package "pear/XML_RPC2"
phpunit/PHPUnit can optionally use PHP extension "dbus"
phpunit/DbUnit requires package "phpunit/PHPUnit" (version >= 3.6.0), downloaded version is 3.5.15
phpunit/PHPUnit requires package "phpunit/DbUnit" (version >= 1.0.0)
phpunit/PHPUnit can optionally use package "phpunit/PHP_Invoker" (version >= 1.0.0)
downloading File_Iterator-1.3.0.tgz ...
downloading Text_Template-1.1.1.tgz ...
downloading PHP_CodeCoverage-1.1.0.tgz ...
downloading PHP_Timer-1.0.2.tgz ...
downloading PHPUnit_MockObject-1.1.0.tgz ...
downloading PHPUnit_Selenium-1.1.0.tgz ...
downloading YAML-1.0.6.tgz ...
downloading PHPUnit-3.6.0.tgz ...
downloading PHP_TokenStream-1.1.0.tgz ...
install ok: channel://pear.phpunit.de/File_Iterator-1.3.0
install ok: channel://pear.phpunit.de/Text_Template-1.1.1
install ok: channel://pear.phpunit.de/PHP_Timer-1.0.2
install ok: channel://pear.symfony-project.com/YAML-1.0.6
install ok: channel://pear.phpunit.de/PHP_TokenStream-1.1.0
install ok: channel://pear.phpunit.de/PHP_CodeCoverage-1.1.0
install ok: channel://pear.phpunit.de/PHPUnit_MockObject-1.1.0
install ok: channel://pear.phpunit.de/PHPUnit-3.6.0
install ok: channel://pear.phpunit.de/PHPUnit_Selenium-1.1.0

即使使用-f选项,试图强制安装我要求的版本,也不会改变任何内容。

如何安装3.5.15?

6 个答案:

答案 0 :(得分:6)

要让Pear不强行安装PHPUnit 3.6,你需要处理很多依赖。以下是我为安装PHPUnit 3.5.15所做的工作:http://dustyreagan.com/downgrade-phpunit-3-6-to-3-5-15/

答案 1 :(得分:3)

PHPUnit-3.5.15需要DbUnit,但最新版本的DbUnit(1.1.0)需要PHPUnit-3.6。这就是为什么,当我安装PHPUnit 3.5.15时,将安装3.6。我通过专门安装DbUnit-1.0.3解决了这个问题。

我会接受我自己的答案,但这不是一个完整的答案 - 尝试安装PHPUnit 3.5会导致安装一个模块,然后强制安装PHPUnit 3.6,这似乎不对。这看起来像是一个包装问题,但我无法弄清楚报告的位置。

答案 2 :(得分:3)

我无法在Ubuntu上正确安装PHPUnit

现在正在widnows 7上安装 遵循这里的建议 http://dustyreagan.com/downgrade-phpunit-3-6-to-3-5-15/

并抽象它:)现在希望我能够安装 ubuntu也是

-

现在已经安装了phpunit正确的版本。

答案 3 :(得分:1)

从未答复的清单中获取问题:


PHPUnit-3.5.15需要DbUnit,但最新版本的DbUnit(1.1.0)需要PHPUnit-3.6。

这就是为什么,当我安装PHPUnit 3.5.15时,将安装3.6。我通过专门安装DbUnit-1.0.3

解决了这个问题

答案 4 :(得分:1)

答案 5 :(得分:0)

通过composer安装:

{
    ...
    "repositories": [
        {
            "type": "pear",
            "url": "pear.symfony-project.com"
        },
        {
            "type": "pear",
            "url": "pear.phpunit.de"
        }
    ],
    "require-dev": {
        "pear-pear.phpunit.de/phpunit": "3.5.15",
        "pear-pear.phpunit.de/PHP_CodeCoverage": "1.0.*",
        "pear-pear.phpunit.de/File_Iterator": "1.2.3"
    }
}