2012-01-24 16 views
6

जब मैं अपने प्रोजेक्ट के परीक्षण फ़ोल्डर के भीतर से 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 सहित अन्य विधियां काम करने लगती हैं।

I सोचें कोडकॉवरेज ने कुछ समय पर अपने सिंगलटन पैटर्न को बदल दिया और इसलिए 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 
+0

मैं या तो उबंटू 11.10 पर मेरे लिए काम करने के लिए phpUnit प्राप्त करने में सक्षम नहीं हूं। –

+2

मुझे एक ही समस्या है और मैंने इसे पहले से ही ** 50 अंक बाउंटी ** से पूछा है: http://stackoverflow.com/questions/8949963/phpunit-pear-upgrading-errors – Eray

+0

पियर के प्रतिद्वंद्वी के रूप में रिकॉर्ड पर जाकर, और जिस तरह से PHPUnit को इसके वर्तमान स्थिति में रिलीज़ किया गया है। –

उत्तर

5

मैं जब वास्तविक pear.phpunit.de चैनल के लिए उपयोग नहीं कर मुद्दों लिया है PHPUnit स्थापित करें, खासकर जब पैकेज प्रबंधक जैसे apt-get या yum का उपयोग करने का प्रयास करें। गिट रिपॉजिटरी से खींचे गए सभी मैन्युअल रूप से इंस्टॉल की गई सामग्री को निकालने का प्रयास करें और PHPUnit और इसकी वैकल्पिक निर्भरताओं के pear uninstall करें। तब:

  • sudo नाशपाती नाशपाती
  • sudo नाशपाती config-सेट auto_discover 1
  • sudo नाशपाती उन्नयन स्थापित --alldeps pear.phpunit.de/PHPUnit

यह मेरे लिए काम किया है। .. आशा करता हूँ की ये काम करेगा।


अद्यतन

यह शायद कह बिना चला जाता है, लेकिन आप यह भी अपने पिछले apt-get प्रयास शुद्ध करना चाहिए और साथ ही पहले उपरोक्त चरणों का पालन:

  • sudo पर्ज apt-get php5-pear
+0

http://stackoverflow.com/questions/8949963/phpunit-pear-upgrading-errors (** के साथ 50 अंक बाउंटी **) – Eray

+0

ठीक है कि मुझे एक अलग त्रुटि कोड: 'PHP घातक त्रुटि: requ_once(): आवश्यक 'PHPUnit/Framework/MockObject/Autoload.php'' – mpen

+0

" MockObject "निर्देशिका मौजूद नहीं है। मजेदार। आपको लगता है कि "alldeps" सभी deps स्थापित करेगा। जाहिरा तौर पर नहीं। मैं MockObjects वापस कैसे प्राप्त करूं? – mpen

2

उबंटू 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 
7

आप इस कोशिश कर सकते हैं, मैं अपने Ubuntu 12 पर यह किया है।04

  1. sudo नाशपाती की स्थापना रद्द करें PHPUnit/PHPUnit
  2. sudo नाशपाती की स्थापना रद्द करें pear.phpunit.de/PHPUnit_MockObject
  3. sudo नाशपाती pear.phpunit.de/PHPUnit_MockObject
  4. sudo नाशपाती --alldeps नाशपाती स्थापित स्थापित करें। phpunit.de/PHPUnit

मैंने कई अन्य तरीकों की कोशिश की है। जब मैं त्रुटि झटका प्राप्त करता हूं यह काम करता है।

[email protected]:~$ phpunit PHP Warning: require_once(PHPUnit/Framework/MockObject/Autoload.php): failed to open >?>stream: No such file or directory in /usr/share/php/PHPUnit/Autoload.php on line 48 PHP Fatal error: require_once(): Failed opening required >'PHPUnit/Framework/MockObject/Autoload.php' >(include_path='.:/usr/share/php:/usr/share/pear') in /usr/share/php/PHPUnit/Autoload.php on >line 48 [email protected]:~$ cd /usr/share/php/

1

ओपन /usr/share/php/PHPUnit/Framework.php और आप इस पर गौर करेगा:

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

बस इतना ही! कृपया अब "PHPUnit/Framework.php" शामिल नहीं है !!!

1

मैं क्या देखा है आपके सिस्टम, स्पष्ट नाशपाती का कैश

pear clear-cache 

पर PHPUnit स्थापित करने से पहले, हो सकता है आप अपनी परियोजना के साथ PHPUnit एकीकृत नहीं किया है। आपको केवल पीयर का उपयोग करके PHPUnit इंस्टॉल करने की आवश्यकता नहीं है, मुझे विश्वास है कि आपको आवश्यक फाइलें परियोजना में नहीं हैं।