Ошибка при запуске PHPUnit

При попытке запустить phpunit . появляется следующая ошибка phpunit . из папки моих проектов:

 PHP Fatal error: Call to undefined method PHP_CodeCoverage_Filter::getInstance() in /usr/share/php/PHPUnit/Framework.php on line 46 

Я установил PHPUnit с помощью следующих команд:

 sudo pear channel-discover pear.symfony-project.com sudo pear channel-discover components.ez.no sudo pear install --alldeps phpunit/PHPUnit 

Как ни один из других методов, похоже, не работает, включая apt-get .

Я думаю, что CodeCoverage изменил их одноэлементный шаблон в некоторый момент времени и, следовательно, удалил getInstance но я не знаю, как исправить эту ошибку. Как я могу либо понизить CodeCoverage, либо обновить PHPUnit?

Я попытался вручную установить последние версии всего, выполнив следующие команды:

 sudo apt-get install git mkdir phpunit && cd phpunit git clone git://github.com/sebastianbergmann/phpunit.git git clone git://github.com/sebastianbergmann/dbunit.git git clone git://github.com/sebastianbergmann/php-file-iterator.git git clone git://github.com/sebastianbergmann/php-text-template.git git clone git://github.com/sebastianbergmann/php-code-coverage.git git clone git://github.com/sebastianbergmann/php-token-stream.git git clone git://github.com/sebastianbergmann/php-timer.git git clone git://github.com/sebastianbergmann/phpunit-mock-objects.git git clone git://github.com/sebastianbergmann/phpunit-selenium.git git clone git://github.com/sebastianbergmann/phpunit-story.git git clone git://github.com/sebastianbergmann/php-invoker.git sudo cp -r dbunit/PHPUnit /usr/share/php/ sudo cp -r php-code-coverage/PHP /usr/share/php/ sudo cp -r php-file-iterator/File /usr/share/php/ sudo cp -r php-invoker/PHP /usr/share/php/ sudo cp -r php-text-template/Text /usr/share/php/ sudo cp -r php-timer/PHP /usr/share/php/ sudo cp -r php-token-stream/PHP /usr/share/php/ sudo cp -r phpunit/PHPUnit /usr/share/php/ sudo cp -r phpunit-mock-objects/PHPUnit /usr/share/php/ sudo cp -r phpunit-selenium/PHPUnit /usr/share/php/ sudo cp -r phpunit-story/PHPUnit /usr/share/php/ sudo cp -r phpunit/phpunit.php /usr/share/php/ 

Но это никому не помогло. Теперь у меня просто куча мусора повсюду: \


Информация о версии:

 PEAR Version: 1.9.4 PHP Version: 5.3.6-13ubuntu3.3 Zend Engine Version: 2.3.0 PHPUnit 3.6.9 by Sebastian Bergmann. 

 Installed packages, channel pear.phpunit.de: ============================================ Package Version State File_Iterator 1.3.1 stable PHPUnit 3.6.9 stable PHPUnit_MockObject 1.1.1 stable PHP_CodeCoverage 1.1.1 stable PHP_Invoker 1.1.0 stable PHP_Timer 1.0.2 stable PHP_TokenStream 1.1.2 stable Text_Template 1.1.1 stable 

вы можете попробовать это, я сделал это на своем Ubuntu 12.04

  1. sudo pear удалить phpunit / PHPUnit
  2. sudo pear удалить pear.phpunit.de/PHPUnit_MockObject
  3. sudo pear install pear.phpunit.de/PHPUnit_MockObject
  4. sudo pear install –alldeps pear.phpunit.de/PHPUnit

Я пробовал много других методов. Это срабатывает, когда я получаю сообщение об ошибке.

hegaofeng @ ubuntu: ~ $ phpunit PHP Предупреждение: require_once (PHPUnit / Framework / MockObject / Autoload.php): не удалось открыть>?> поток: нет такого файла или каталога в /usr/share/php/PHPUnit/Autoload.php on строка 48 PHP Неустранимая ошибка: require_once (): Не удалось выполнить открытие> 'PHPUnit / Framework / MockObject / Autoload.php'> (include_path = '.: / usr / share / php: / usr / share / pear') в / usr /share/php/PHPUnit/Autoload.php on> line 48 hegaofeng @ ubuntu: ~ $ cd / usr / share / php /

У меня были проблемы, когда я не использовал фактический канал pear.phpunit.de для установки PHPUnit, особенно при попытке использовать диспетчер пакетов, такой как apt-get или yum. Попробуйте удалить все вручную установленные вещи, которые вы вытащили из репозитория git, и сделать pear uninstall PHPUnit и его дополнительные зависимости. Затем:

  • Обновление sudo pear PEAR
  • Конфигурация sudo pear auto_discover 1
  • sudo pear install –alldeps pear.phpunit.de/PHPUnit

Это сработало для меня … надеюсь, что это поможет.


ОБНОВИТЬ

Это, вероятно, само собой разумеется, но вы также должны очистить свои предыдущие попытки apt-get, а затем выполнить следующие шаги:

  • sudo apt-get purge php5-pear

Ручная установка для Ubuntu 11.10

 mkdir phpunit && cd phpunit git clone git://github.com/sebastianbergmann/phpunit.git git clone git://github.com/sebastianbergmann/dbunit.git git clone git://github.com/sebastianbergmann/php-file-iterator.git git clone git://github.com/sebastianbergmann/php-text-template.git git clone git://github.com/sebastianbergmann/php-code-coverage.git git clone git://github.com/sebastianbergmann/php-token-stream.git git clone git://github.com/sebastianbergmann/php-timer.git git clone git://github.com/sebastianbergmann/phpunit-mock-objects.git git clone git://github.com/sebastianbergmann/phpunit-selenium.git git clone git://github.com/sebastianbergmann/phpunit-story.git git clone git://github.com/sebastianbergmann/php-invoker.git cd phpunit && git checkout 3.6 && cd .. cd dbunit && git checkout 1.1 && cd .. cd php-code-coverage && git checkout 1.1 && cd .. cd phpunit-mock-objects && git checkout 1.1 && cd .. cd phpunit-selenium && git checkout 1.1 && cd .. sudo mv ./* /usr/share/php/ ln -s /usr/share/php/phpunit/phpunit.php ~/bin/phpunit gksudo gedit /etc/php5/cli/php.ini 

Добавьте в свой include_path :

 /usr/share/php/dbunit:/usr/share/php/php-code-coverage:/usr/share/php/php-file-iterator:/usr/share/php/php-text-template:/usr/share/php/php-timer:/usr/share/php/php-token-stream:/usr/share/php/phpunit:/usr/share/php/phpunit-mock-objects:/usr/share/php/phpunit-selenium:/usr/share/php/phpunit-story:/usr/share/php/php-invoker 

Откройте /usr/share/php/PHPUnit/Framework.php, и вы увидите следующее:

 trigger_error( 'Please no longer include "PHPUnit/Framework.php".', E_USER_NOTICE ); 

Это все! Пожалуйста, больше не включайте «PHPUnit / Framework.php» !!!

Перед установкой PHPUnit в вашей системе очистите кеш груши

 pear clear-cache 

Из того, что я видел, возможно, вы не интегрировали PHPUnit с вашим проектом. Вам не нужно устанавливать PHPUnit только с помощью PEAR, я считаю, что файлы, которые вам нужны, не входят в проект.