Невозможно глобально установить старую версию phpunit phar

Как дано в https://phpunit.de/manual/current/en/installation.html#installation.phar.verification, шаги для глобальной установки PHAR:

$ wget https://phar.phpunit.de/phpunit.phar
$ chmod +x phpunit.phar
$ sudo mv phpunit.phar /usr/local/bin/phpunit
$ phpunit --version
PHPUnit x.y.z by Sebastian Bergmann and contributors.

Я следовал за вышеупомянутым, но с URL для более старой версии, то есть https://phar.phpunit.de/phpunit-old.phar (потому что наша версия PHP старше). Затем я выполнил следующие команды —

$ chmod +x phpunit-old.phar
$ sudo mv phpunit-old.phar /usr/local/bin/phpunit

Примечание. Моя версия PHP 5.3.29. а в разделе Old Stable Release в phpunit.de говорится, что PHPUnit 4.8 поддерживается в PHP 5.3, PHP 5.4, PHP 5.5 и PHP 5.6.

Выглядит хорошо, пока здесь. Но работает phpunit --version дает —

PHP Fatal error:  require(): Cannot redeclare class phpunit_extensions_database_constraint_tableisequal in /usr/local/bin/phpunit on line 109
zend_mm_heap corrupted

Таким образом, вместо перемещения .phar в /usr/local/bin/ (в шаге 3), я управлял до сих пор, выполняя это —

$ php phpunit-old.phar –-version

Я также смог запустить свои тестовые модули таким образом —

php /home/sandeepan/phpunit-old.phar /var/cake_1.2.0.6311-beta/app/webroot/openx/lib/ad_agencies/unittests/Admarvel_generic_network_test.php

Но теперь мне нужно интегрировать phpunit с phing. Я хотел бы использовать основные утилиты, предоставляемые PHPUnitTask phing. Итак, я думаю, что phpunit phar нужно установить глобально.

Я попытал счастья, написав следующее —

<phpunit haltonfailure="true" haltonerror="true"pharlocation="/home/sandeepan/phpunit-old">
<formatter type="plain" usefile="false" />
<batchtest>
<fileset dir="${dir.scratchpad}/${dir.subdir}/unittests">
<include name="**/*_test.php"/>
</fileset>
</batchtest>
</phpunit>

Но я получаю эту ошибку —

BUILD FAILED
...
: PHPUnitTask requires PHPUnit to be installed

Обновить

Со ссылкой на stackoverflow.com/a/23410676/351903 я пытался использовать эту более старую версию Phpunit, т.е. PHPUnit-3.7.35. Сейчас, phpunit --version команда работает. Но я все еще не добился успеха, используя PHPUnitTask из Phing. Все еще получать PHPUnitTask requires PHPUnit to be installed ошибка.

Обновление 2

Решением, которое работало для меня, было использование PHPUnit 3.7.35. Кажется, есть проблема совместимости phing с PHPUnit 4.8.

1

Решение

Я только что скачал старый файл PHPUnit, предоставленный вами с сайта phpunit.de, и успешно применил написанные вами команды. Запуск phpunit работал как шарм в моем случае.

Возможно, существует несовместимость между вашей версией PHP и версией PHPUnit, которую вы скачали?

0

Другие решения

Я не могу воспроизвести проблему, которую вы описываете:

$ wget https://phar.phpunit.de/phpunit-old.phar
--2016-04-07 09:47:35--  https://phar.phpunit.de/phpunit-old.phar
Resolving phar.phpunit.de (phar.phpunit.de)... 188.94.27.25
Connecting to phar.phpunit.de (phar.phpunit.de)|188.94.27.25|:443... connected.
HTTP request sent, awaiting response... 302 Moved Temporarily
Location: https://phar.phpunit.de/phpunit-4.8.24.phar [following]
--2016-04-07 09:47:35--  https://phar.phpunit.de/phpunit-4.8.24.phar
Reusing existing connection to phar.phpunit.de:443.
HTTP request sent, awaiting response... 200 OK
Length: 3086772 (2.9M) [application/octet-stream]
Saving to: ‘phpunit-old.phar’

phpunit-old.phar                                          100%[=====================================================================================================================================>]   2.94M  3.97MB/s    in 0.7s

2016-04-07 09:47:36 (3.97 MB/s) - ‘phpunit-old.phar’ saved [3086772/3086772]$ php phpunit-old.phar --version
PHPUnit 4.8.24 by Sebastian Bergmann and contributors.
0

Решением, которое работало для меня, было использование PHPUnit 3.7.35. Кажется, есть проблема совместимости phing с PHPUnit 4.8.

Источник — Phing не видит PHPUnit

-1
По вопросам рекламы [email protected]