Как дано в https://phpunit.de/manual/current/en/installation.html#installation.phar.verification, шаги к глобально установить ФАР являются:Невозможно глобально установить более старую версию PHPUnit 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. и раздел «Старая стабильная версия» в 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 of 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
Update
со ссылкой на stackoverflow.com/a/23410676/351903, я попробовал эту старую версию Phpunit, то есть PHPUnit-3.7.35. Теперь работает phpunit --version
. Но я все еще не успеваю использовать PHPUnitTask от Phing. Все еще получаю ошибку PHPUnitTask requires PHPUnit to be installed
.
Update 2
Решение, которое работало для меня было с использованием PHPUnit 3.7.35. Кажется, есть некоторая проблема совместимости phing с PHPUnit 4.8.
Использование PHPUnit 3.7.35 исправлена проблема. Источник - http://stackoverflow.com/questions/23377750/phing-cant-see-phpunit/23410676#23410676 –