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

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

6 голосов
/ 24 января 2012

При попытке запустить 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

Ответы [ 5 ]

7 голосов
/ 23 октября 2012

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

  1. sudo pear удалить phpunit / PHPUnit
  2. Удаление груши sudo pear.phpunit.de/PHPUnit_MockObject
  3. sudo pear install pear.phpunit.de/PHPUnit_MockObject
  4. установка sudo pear --alldeps pear.phpunit.de/PHPUnit

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

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

5 голосов
/ 24 января 2012

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

  • Обновление sudo pear PEAR
  • набор настроек sudo pear auto_discover 1
  • установка sudo pear --alldeps pear.phpunit.de/PHPUnit

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


UPDATE

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

  • sudo apt-get purg php5-pear
2 голосов
/ 25 января 2012

Ручная установка для 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
1 голос
/ 12 сентября 2013

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

pear clear-cache

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

1 голос
/ 05 июля 2013

Откройте / usr / share / php / PHPUnit / Framework.php и вы увидите это:

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

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

...