2013-08-04 3 views
28

में कोई त्रुटि क्यों नहीं दिखाता है मैं लैरवेल 4 ढांचे के साथ phpunit का उपयोग कर रहा हूँ। ऐसा क्यों है कि परीक्षण के दौरान PHP त्रुटि होने पर, कोई त्रुटि संदेश नहीं दिखाया जाता है (उदाहरण: गायब विधि)?phpunit कंसोल

हम सभी त्रुटियों को दिखाने के लिए phpunit कैसे प्राप्त कर सकते हैं?

enter image description here

+0

आप सभी PHPunit त्रुटियां प्राप्त कर सकते हैं। [यह एक] [1] या [यह एक] [2] आपके लिए उपयोगी होगा। [1]: http://stackoverflow.com/questions/3569862/phpunit-errors [2]: http://stackoverflow.com/questions/5994729/phpunit-not-showing-a-stack-trace -for-a-php-fatal-error –

उत्तर

23

मुझे लगता है कि समस्या शायद है एक PHP ही है, PHPUnit नहीं को दर्शाता है। इन चरणों का पालन करें:

1. उचित php.ini देखें। ध्यान दें कि कुछ सिस्टम अलग पीएचपी SAPI के लिए अलग-अलग php.ini उपयोग कर सकते हैं:

php -i | grep php.ini 
Configuration File (php.ini) Path => /etc/php5/cli 
Loaded Configuration File => /etc/php5/cli/php.ini 

2. संपादित त्रुटि आउटपुट सेटिंग। इसी php.ini में error_reporting के लिए उपयुक्त सेटिंग्स सेट, display_errors, display_startup_errors:

error_reporting = E_ALL 
display_errors = On 
display_startup_errors = On 

आपके द्वारा रिपोर्ट वैश्विक दायरे में व्यवहार CLI त्रुटि बदलने के लिए नहीं करना चाहते हैं, तो आप उन settnigs परिभाषित के लिए PHPUnit बूटस्ट्रैप फ़ाइल का उपयोग कर सकते हैं।

1. PHPUnit के लिए सेटअप बूटस्ट्रैप। ओपन /Applications/MAMP/htdocs/testtingDecoded/phpunit.xml फ़ाइल और PHPUnit टैग करने के लिए बूटस्ट्रैप विशेषता जोड़ें:

<phpunit bootstrap="bootstrap.php"> 

2. phpunit.xml साथ फ़ोल्डर में bootstrap.php बनाएँ:

<?php 
ini_set('error_reporting', E_ALL); // or error_reporting(E_ALL); 
ini_set('display_errors', '1'); 
ini_set('display_startup_errors', '1'); 
40

यह एक बहुत ही आम मुद्दा है, खासकर जब आप चल रहे हैं एक उत्पादन सर्वर पर परीक्षण या जब परीक्षक PHP कॉन्फ़िगरेशन के बारे में बहुत अवगत नहीं है। के रूप में अपने जवाब और सभी समाधान वह काम ठीक से पता चलता है में Alexander Yancharuk द्वारा बताया

मुद्दा, php.ini सेटिंग्स से संबंधित है।

लेकिन वहाँ एक और समाधान है कि उपयोगी हो सकता है, के रूप में यह मेरे लिए था, PHPUnit विन्यास फाइल (XML) अपने आप में उचित पीएचपी सेटिंग्स निर्धारित करने की है जो है, इस प्रकार है:

<phpunit> 
    <suites> 
     ... 
    </suites> 
    <php> 
     <ini name="display_errors" value="On" /> 
     <ini name="display_startup_errors" value="On" /> 
    </php> 
</phpunit> 

इस का उपयोग करते हुए आप न केवल त्रुटि प्रदर्शन को वैयक्तिकृत कर सकते हैं, लेकिन विशेष रूप से आपके परीक्षण सूट के लिए बहुत सी PHP कॉन्फ़िगरेशन, आपके उत्पादन कॉन्फ़िगरेशन को बिना छूटे हुए और केवल इसके लिए बूटस्ट्रैप फ़ाइल लिखने के बिना छोड़ सकते हैं।

+0

मैंने कोशिश की लेकिन यह मेरे लिए काम नहीं कर रहा है। बस सोच रहा है कि क्या मुझे कुछ याद आ रही है। मैं एक मैक चल रहे हाई सिएरा पर लैरवेल 5.6 का उपयोग कर रहा हूं। PHP संस्करण PHP 7.1.7 और phpunit 7.0.0। मैंने लारवेल के साथ आने वाली 'phpunit.xml' फ़ाइल' 'तत्व में दिखाई देने वाली दो पंक्तियों को जोड़ा, लेकिन कोई भाग्य नहीं है। त्रुटियां अभी भी प्रदर्शित नहीं हैं। कोई विचार क्यों नहीं? – flyingL123

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