Как мне установить PHPUnit 3.5 вместо 3.6?

#phpunit #pear

#phpunit #pear

Вопрос:

Текущая версия PHPUnit — 3.6, но пока я не обновлю свой код, мне нужно использовать 3.5.15. У меня много проблем с установкой версии 3.5.15.

Я начинаю с чистой установки Zend Server, на котором установлено всего несколько базовых пакетов PEAR. I channel-discover pear.phpunit.de и pear.symfony-project.com . Затем я пытаюсь установить 3.5.15 с URL-адреса, но это не удается:

 # 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?

Комментарии:

1. Я понял это, частично. Для PHPUnit-3.5.15 требуется DBUnit, но для последней версии DBUnit (1.1.0) требуется PHPUnit-3.6. Вот почему, когда я установил PHPUnit 3.5.15, вместо него будет установлен 3.6. Я решил проблему, специально установив DBUnit-1.0.3.

Ответ №1:

Существует множество зависимостей, с которыми вам приходится иметь дело, чтобы Pear НЕ устанавливал PHPUnit 3.6 принудительно. Вот что я сделал, чтобы установить PHPUnit 3.5.15: http://dustyreagan.com/downgrade-phpunit-3-6-to-3-5-15 /

Ответ №2:

Для 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, и это не кажется правильным. Это похоже на проблему с упаковкой, но я не мог понять, куда сообщить об этом.

Ответ №3:

Я не смог правильно установить PHPUnit на Ubuntu

Теперь я устанавливаю widnows 7, следуя советам отсюда http://dustyreagan.com/downgrade-phpunit-3-6-to-3-5-15 /

и абстрагирую его 🙂 теперь надеюсь, что я смогу установить и на ubuntu

Это сработало, теперь установлена правильная версия phpunit.

Ответ №4:

Чтобы получить вопрос из списка неотвеченных:


Для PHPUnit-3.5.15 требуется DBUnit, но для последней версии DBUnit (1.1.0) требуется PHPUnit-3.6.

Так вот почему, когда я установил PHPUnit 3.5.15, вместо него будет установлен 3.6. Я решил проблему, специально установив DBUnit-1.0.3

Ответ №5:

Для меня это сработало нормально http://dustyreagan.com/downgrade-phpunit-3-6-to-3-5-15 /

Ответ №6:

установите его через 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"
    }
}
  

Комментарии:

1. В то время, когда я изначально задавал этот вопрос, Composer еще не был выпущен.