Я пытаюсь настроить новый сервер непрерывной интеграции, который использует Phing и PHPUnit для автоматического запуска тестовых примеров.
Я установил Phing с Pear:
pear channel-discover pear.phing.info pear install phing/phing
Я установил PHPUnit, используя новый метод PHAR:
wget https://phar.phpunit.de/phpunit.phar chmod +x phpunit.phar mv phpunit.phar /usr/local/bin/phpunit
Затем я перехожу в каталог, где находится мой файл build.xml, rung phing, и похоже, что Phing не знает, где PHPUnit.
[jenkins@leroy workspace]$ phing Buildfile: /home/jenkins/.jenkins/jobs/Framework/workspace/build.xml Framework > test: [echo] Running Tests Execution of target "test" failed for the following reason: /home/jenkins/.jenkins/jobs/Framework/workspace/build.xml:9:37: /home/jenkins/.jenkins/jobs/Framework/workspace/build.xml:9:37: PHPUnitTask requires PHPUnit to be installed BUILD FAILED /home/jenkins/.jenkins/jobs/Framework/workspace/build.xml:9:37: /home/jenkins/.jenkins/jobs/Framework/workspace/build.xml:9:37: PHPUnitTask requires PHPUnit to be installed Total time: 0.0764 seconds [jenkins@leroy workspace]$
Проверено расположение Phing и PHPUnit:
[jenkins@leroy workspace]$ which phing /usr/bin/phing [jenkins@leroy workspace]$ which phpunit /usr/local/bin/phpunit
И, убедившись, что PHP достаточно новый:
[jenkins@leroy workspace]$ php -v PHP 5.3.3 (cli) (built: Dec 11 2013 03:29:57)
Я делаю все это, потому что мы заменяем старый Jenkins-сервер новым. Попытка использовать новейшее программное обеспечение, но я не могу понять, как сказать Phing, где найти PHPUnit.
Заранее благодарю за любую помощь!
Дэвид
Кажется, что добавление атрибута phpunit
элемент задачи phpunit
, указывающий на ваш локальный исполняемый файл phpunit, выполняет задание:
<phpunit haltonfailure="true" haltonerror="true" bootstrap="./fw_init.php" pharlocation="/usr/local/bin/phpunit"> <formatter type="plain" usefile="false" /> ... </phpunit>
Похоже, что есть некоторые актуальные проблемы с phing и последние версии 4.x PHPUnit: http://www.phing.info/trac/ticket/1091 .
Поэтому, чтобы исправить проблему, я удалил PHPUnit 4 и задал более старую версию:
pear install phpunit/PHPUnit-3.7.35
Phing и PHPUnit работали сразу в этот момент.
Вот парень с точно такой же проблемой: как мне сказать Phing, где установлен PHPUnit?
Его теория такова:
Версия PHP на этой машине может быть слишком старой и не иметь возможности обрабатывать архивы PHAR
Я не могу прокомментировать, прав он или нет, но этот вопрос не получил никаких ответов ни от кого, кроме автора
Может быть, глупое замечание, но у вас есть /usr/local/bin/phpunit
на вашем пути PHP include?
Я получаю ту же ошибку, когда я phpunit.phar
местоположение phpunit.phar
из моего пути включения.