Проблем със съвместимостта на PHPunit със Zend

Конфигурирах PHPUnit със Zend Framework. Когато изпълня командата

phpunit --configuration phpunit.xml

Получавам съобщение за грешка като

Declaration of Zend_Test_PHPUnit_Constraint_ResponseHeader::evaluate() should be compatible with that of PHPUnit_Framework_Constraint::evaluate()

Имам следните assert функции

$this->assertModule($urlParams['module']);
$this->assertController($urlParams['controller']);
$this->assertAction($urlParams['action']);
$this->assertResponseCode(200);

Потърсих проблема и намерих много свързани решения като посоченото тук. Проверих моята версия на PHPUnit, тя е 3.7.9 и Zend Framework 1 функционира правилно само с PHPUnit 3.5.x.

След това се опитах да понижа PHPUnit, както е посочено тук. Процесът un-installation работи успешно. Но когато отида да инсталирам по-ниската версия и изпълня командата

pear install phpunit/PHP_CodeCoverage-1.0.2

Генерира грешка

phing/phing requires package "phpunit/PHP_CodeCoverage" (version >= 1.1.0). phpunit/PHP_CodeCoverage cannot be installed, Conflicts with installed packages. 

Някой да ми каже как да се справя с тази ситуация? Как да направя инсталираната версия на PHPUnit съвместима със Zend Framework 1.X или как правилно да понижа моя PHPUnit??

С Най-Добри Пожелания.


person Awais Qarni    schedule 20.11.2012    source източник


Отговори (1)


Винаги можете да инсталирате 2 различни екземпляра на PHPUnit. Инсталирайте с pear най-новата версия на PHPUnit, за да накарате Phing да работи, и инсталирайте PHPunit версия 3.5.x с Composer - според инструкциите тук.

Ако всичко е направено правилно, ще имате PHPUnit за цялата система в най-новата версия, а в папката на вашия проект в vendors/bin ще имате PHPunit 3.5.x. Използвайте втория за изграждане на тестове в ZF1.

person Roberto    schedule 20.11.2012
comment
Това означава, че ще създам папка vendors/bin и в тази папка ще инсталирам phpunit 3.5.x? - person Awais Qarni; 20.11.2012
comment
И как да инсталирам този view composer? Означава, че ще създам compsor.json файл в горната директория и ще поставя кода, който те са дали там? - person Awais Qarni; 20.11.2012
comment
Можете ли да развиете отговора си по-задълбочено? - person Awais Qarni; 20.11.2012
comment
Всички инструкции за настройка могат да бъдат намерени в връзката по-горе - но да, ще трябва да изтеглите composer.phar, да създадете composer.json с вашите зависимости (просто използвайте примера, даден в страницата за инсталиране на PHPUnit) и да стартирате php composer.phar install - person Roberto; 20.11.2012
comment
Ще запазя файла composer.phar в моята директория на проекта? - person Awais Qarni; 20.11.2012
comment
да - както се казва в ръководството по-горе, просто стартирайте curl -s https://getcomposer.org/installer | php в директорията на вашия проект. моля, преди да коментирате допълнително, не забравяйте да прочетете свързаното ръководство и да го изпробвате - person Roberto; 20.11.2012
comment
@Roberto, връзката по-горе към документите на PHPUnit изрично казва, че поддръжката за Composer и PHP Archive (PHAR) е добавена в PHPUnit 3.7 (и е известно, че е стабилна от PHPUnit 3.7.5). По-ранните версии на PHPUnit не са достъпни чрез тези канали за разпространение. .. Следователно не можете да използвате composer за 3.5. - person Mike Graf; 18.03.2013
comment
някой получи ли отделна инсталация, работеща? Все още имам стари проекти за поддръжка и трябва да стартирам две версии... - person spankmaster79; 27.05.2013