Проблема совместимости 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
И как установить этот вид-композитор? Значит, я создам файл 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 недоступны через эти каналы распространения. .. Следовательно, вы не можете использовать композитор для 3.5. - person Mike Graf; 18.03.2013
comment
у кого-нибудь работала отдельная установка? У меня все еще есть старые проекты, которые нужно поддерживать, и мне нужно запустить две версии... - person spankmaster79; 27.05.2013