2012-01-02 15 views
26

चलाते समय घातक त्रुटि 'फ़ाइल/इटरेटर/Autoload.php' नहीं मिला, मुझे phpunit में testclass चलाने की कोशिश करते समय यह त्रुटि मिल रही है।phpunit

C:\xampp\htdocs\unittest>phpunit UnitTest usertest.php 
PHP Warning: require_once(File/Iterator/Autoload.php): failed to open stream No such file or directory in C:\xampp\php\pear\PHPUnit\Autoload.php on line 45 
PHP Stack trace: 
PHP 1. {main}() C:\xampp\php\phpunit:0 
PHP 2. require() C:\xampp\php\phpunit:41 

Warning: require_once(File/Iterator/Autoload.php): failed to open stream: No such file or directory in C:\xampp\php\pear\PHPUnit\Autoload.php on line 45 

Call Stack: 
    0.0004  325352 1. {main}() C:\xampp\php\phpunit:0 
    0.0026  366520 2. require('C:\xampp\php\pear\PHPUnit\Autoload.php')xampp\php\phpunit:41 

PHP Fatal error: require_once(): Failed opening required 'File/Iterator/Autoload.php' (include_path='.;C:\php\pear') in C:\xampp\php\pear\PHPUnit\Autoload.php on line 45 
PHP Stack trace: 
PHP 1. {main}() C:\xampp\php\phpunit:0' 

कोई भी इसका समाधान दे सकता है ??

नोट: मैं खिड़कियों 7.

धन्यवाद उपयोग कर रहा हूँ,

+0

* (संबंधित) * (फिक्स काम करेगा): http://stackoverflow.com/questions/8078707/cannot-get-phpunit-working – edorian

+0

* (नोट) * जहां तक ​​मैं यह कह सकता हूं कि यह एक डुप्लिकेट नहीं है और चूंकि यह एक इंस्टॉलेशन समस्या हो सकती है शायद एसएफ माइग्रेशन लेकिन यह एक असली सवाल है :) – edorian

+0

इसी तरह की त्रुटि में भी आया। यदि आप संगीतकार का उपयोग कर रहे हैं, तो इसके लिए सरल फिक्स, सुनिश्चित करें कि आपके पास PHPUnit का नवीनतम स्थिर संस्करण है, उदा। 5.5, और सभी काम करेंगे। – ProfNandaa

उत्तर

10

आपका PHPUnit स्थापना टूटी हुई है। इसके लिए सबसे आसान फिक्स

pear install --force --alldeps phpunit/phpunit 

और देखें कि क्या काम किया गया है।

आपको सबसे वर्तमान नाशपाती संस्करण 1.9.4 की आवश्यकता होगी। यदि आपके पास उस संस्करण को go-pear.phar का उपयोग करके इंस्टॉल नहीं किया गया है। यदि आप किसी चीज़ के लिए xammp से चल रहे हैं तो वे नाशपाती स्थापना को ठीक करने का प्रयास न करें। आमतौर पर इसे पुनर्स्थापित करने के लिए यह बहुत आसान है।

क्या आप चाहते हैं अभी भी लापता पैकेज स्थापित करने का प्रयास कर सकते हैं:

pear install phpunit/File_Iterator 

इस सकता है कि एक संभावित कारण (एक --force जोड़ने नाशपाती आपको बताता है कि यह पहले से ही स्थापित किया गया है)

23

ऐसा होता है कि आपका php include_path सही ढंग से सेट नहीं है। कृपया सुनिश्चित करें कि आपके पास उपलब्ध पीयर का उचित मार्ग है। मेरे WAMP स्थापना के लिए यह होगा:

include_path=".;C:\wamp\bin\php\php5.3.8\PEAR\PEAR" 

हालांकि, यह सबसे अधिक संभावना आपके सिस्टम पर अलग होगा।

एक साइड नोट, आप अपने apache php.ini दोनों के साथ-साथ अपने PHP स्थापना फ़ोल्डर में स्थित php.ini को अपडेट करना चाहेंगे। सीएलआई डिफ़ॉल्ट php.ini, और वेब अनुरोध (और अक्सर अन्य सॉफ़्टवेयर जिन्हें आप पीईएआर पैकेज का उपयोग कर सकते हैं) apache php.ini का उपयोग करेंगे।

उम्मीद है कि इससे मदद मिलती है।

+3

यह वही है जो मेरे लिए था, हालांकि मुझे तब तक इसका एहसास नहीं हुआ जब तक कि मैं [आरटीएफएम] (http://pear.php.net/manual/en/installation.checking.php)। एक साइड नोट के रूप में, ';' विंडोज़ के लिए और ':' ओएसएक्स/यूनिक्स के लिए डीआईआर सेपरेटर के रूप में। – George

+0

मेरे लिए भी काम किया। उबंटू में मेरा रास्ता "।:/Usr/share/नाशपाती" है अगर यह किसी की मदद करता है। –

+0

"मुझे भी" (क्षमा करें), मेरे मामले में यह मैक बंदरगाहों के माध्यम से PHP के अपग्रेड के कारण था, जिसने एक नया php.ini कॉन्फ़िगरेशन स्थापित किया था, लेकिन चलने वाले गो-पियर पर कॉपी नहीं किया था। – scipilot

4

पोस्ट पढ़ने के 2 दिनों के बाद, अंत में मैं गाइड के साथ हल किया है:

पकड़ से साफ पीसी/PHPUnit LINK की

भ्रष्ट स्थापना और पुनर्स्थापित इस गाइड LINK

3

मेरे लिए के साथ फिक्स सरल था (उबंटू 12.04)। सबसे पहले मैं एक खोज सुनिश्चित करें कि फ़ाइल अस्तित्व में बनाने के लिए किया था और जहां यह स्थित था:

locate Autoload.php 

कौन इस के समान परिणाम वापस चाहिए:

/usr/share/php/File/Iterator/Autoload.php 
/usr/share/php/PHP/CodeCoverage/Autoload.php 
/usr/share/php/PHP/Depend/Autoload.php 
/usr/share/php/PHP/Invoker/Autoload.php 
/usr/share/php/PHP/Timer/Autoload.php 
/usr/share/php/PHP/Token/Stream/Autoload.php 
/usr/share/php/PHPCPD/Autoload.php 
/usr/share/php/PHPUnit/Autoload.php 
/usr/share/php/PHPUnit/Framework/MockObject/Autoload.php 
/usr/share/php/PHP_CodeBrowser/Autoload.php 
/usr/share/php/Text/Template/Autoload.php 

तब मैं अपने include_path, जिसमें सही ढंग से स्थापित किया गया था जाँच /etc/php5/apache2/php.ini, लेकिन अभी भी /etc/php5/cli/php.ini (कमांड लाइन इंटरफ़ेस) में टिप्पणी की गई थी।

uncommenting इस लाइन मेरे लिए काम किया:

include_path = ".:/usr/share/php:/usr/include/php5" 

सुंदर बुनियादी मुझे पता है, लेकिन यह हमेशा छोटी चीज़ें है जब एक नया मशीन ;-)

2

मैं PHP 5.3 का उपयोग कर एक ही समस्या थी की स्थापना अंतर्निहित सर्वर कॉन्फ़िगरेशन का उपयोग कर ओएसएक्स 10.6 पर।

मैंने देखा कि PHPUnit को सफलतापूर्वक/usr/lib/php में स्थापित किया जा रहा था, जबकि Autoload.php फ़ाइल इटरेटर को अपनी वर्तमान निर्देशिका (/ usr/lib/php/PHPUnit) से लोड करने के लिए कोशिश कर रहा था (लाइन 45) निर्देशिका से पियर इसे स्थापित कर रहा था (/ usr/lib/php/file)। क्या यह नाशपाती इंस्टॉलर में एक बग हो सकता है?

एक साधारण एलएन-एस/यूएसआर/lib/php/फ़ाइल/usr/lib/php/PHPUnit/फ़ाइल समस्या हल हो गई।

+0

यह एक झुकाव है। वास्तविक कारण php.ini में एक गलत कॉन्फ़िगर किया गया include_path है। यह सिर्फ वास्तविक समस्या को मुखौटा करता है, और चीजें थोड़ा बदलती हैं तो फिर से आसानी से तोड़ सकती हैं। –

+1

@ टिम, स्पष्टीकरण के लिए धन्यवाद, मेरे पास यह प्रश्न पहले स्थान पर था और लगभग "requ_once" पथ को बदलने का प्रयास करें। और बाद में php.ini को संशोधित करके इसे समझें। – zhihong

7

जाँच हो रही है नाशपाती config मुझे मदद की इस quicky लगता है:

bash-3.2# pear config-show | grep php_dir 
PEAR directory     php_dir   /usr/local/pear/share/pear 

bash-3.2# vi /etc/php.ini 
include_path = ".:/php/includes:/usr/local/pear/share/pear" 
+0

यह विधि मेरे लिए काम करती है। उबंटू 12.04 में, सबसे पहले php_dir खोजें, जो "/ usr/share/php" है, फिर उसका सही स्थान ढूंढने के लिए "php.ini का पता लगाएं" का उपयोग करें। मेरा मामला "/etc/php5/cli/php.ini" है, फिर include_path = "।:/Usr/share/php" जोड़ें/संशोधित करें – zhihong

3

अच्छा चीजें मैं इस पर पढ़ लिया है के सभी प्रकार। पहले जांचें कि Autoload.php कहां स्थित है। उपयोग:

$ find . -name 'Autoload.php' -type f 

मुझे लगता है कि आपकी फ़ाइलों में स्थित हैं:

/usr/local/pear/share/pear 


मैं एप्पल OSX 10.8.4 MAMP और MAMP-प्रो स्थापित है और मैं कई अन्य पीएचपी प्रतिष्ठानों की है।
पिछले एक मैं निम्नलिखित किया है के लिए: पहले जांच कर लें वहाँ एक php.ini निर्देशिका में है: /private/etc
यदि नहीं, तो कार्य करें:

$ sudo cp /private/etc/php.ini.default /private/etc/php.ini 

में निम्नलिखित पंक्तियां जोड़ें 'php.ini' फ़ाइल के नीचे:

; *** Added by <your-name> **** 
include_path=".:/usr/local/pear/share/pear" 
; *** Ended addition **** 

हो गया।

0

इसके अलावा, ओपन-सर्वर बंडल का उपयोग करके कोई भी ध्यान दे सकता है कि यह बहुत छोटा रास्ता शामिल है Ipath।

विंडोज 7 पर इसे ठीक करने के आप कर सकते हैं

cd c:\Windows 
mklink php.ini c:\OpenServer\userdata\temp\config\php.ini 
1

मैं Ubuntu 14.04 उपयोग कर रहा हूँ और मैं Ubuntu सॉफ्टवेयर केंद्र के माध्यम से PHPUnit जो काम नहीं किया स्थापित किया।

अंत में मैं इसे हटा दें और मैं here

wget https://phar.phpunit.de/phpunit.phar 
chmod +x phpunit.phar 
sudo mv phpunit.phar /usr/local/bin/phpunit 
0

से निर्देशों का पालन किया मैं विंडोज 7 और XAMPP (php 5.6.11) के साथ एक ही मुद्दा था, मैं सभी फिर से स्थापित करने नाशपाती और PHPUnit कोशिश की, लेकिन उसने ऐसा नहीं किया काम। जब मैंने सी की अनुमति की जांच की: \ xammp \ php \ pear निर्देशिका यह केवल पढ़ने के लिए, अनुमति बदलने के बाद यह काम करना शुरू कर दिया।त्रुटि पर

0

देखो:

(include_path='.;C:\php\pear') in C:\xampp\php\pear\PHPUnit\Autoload.php 

Xampp include_path .;C:\php\pear में उस फ़ाइल लेकिन नाशपाती के लिए पथ का पता लगाने की कोशिश कर रहा है .;C:\xampp\php\pear है।

नाशपाती के लिए सही पथ निर्धारित करें और यह काम करेगा। मैंने अभी इसे बनाया है।

 संबंधित मुद्दे