ऐसा लगता है कि यह केवल मेरे सिस्टम पर होता है। कोई और इसे पुन: उत्पन्न नहीं कर सकता था। अगर त्रुटि का संदेश बहुत बड़ा है (मेरे मामले में लगभग 65k बाइट्स) स्क्रीन पर कुछ भी मुद्रित नहीं होता है। मैं विंडोज 7 पर PHP 7.1.3 का उपयोग कर रहा हूं, डिफ़ॉल्ट php.ini (स्मृति सीमा 8 जीबी पर सेट) और डिफ़ॉल्ट PHPUnit 6.0.13 कॉन्फ़िगरेशन के साथ। त्रुटि दोनों प्रॉम्प्ट और पावरहेल में प्रकट नहीं होती है।PHPUnit को बहुत बड़े त्रुटि संदेशों को मुद्रित करने का कारण क्या हो सकता है?
PHPUnit 6.0.13 सेबस्टियन Bergmann और योगदानकर्ताओं द्वारा:
<?php use PHPUnit\Framework\Constraint\Constraint; use PHPUnit\Framework\TestCase; class MyConstraint extends Constraint { protected $expected; function __construct($expected){ parent::__construct(); $this->expected = $expected; } protected function matches($actual){ return false; } function failureDescription($other): string{ return "desc"; } function toString(){ return "description"; } function additionalFailureDescription($other): string{ return str_repeat("x", 100000); // If set to a smaller dump, error will appear // some people I asked to try could dump one million // bytes without problems, while I can't print more // than about 50k } } class SomeTest extends TestCase { function testBigDump(){ TestCase::assertThat("irrelevant", new MyConstraint("irrelevant")); } } ?>
और यह मैं स्क्रीन पर प्राप्त होता है।
रनटाइम: PHPDBG 7.1.3 विन्यास: ..............
F 1/1 (100%)
समय: 361 एमएस, मेमोरी: 6.00
1) SomeTest :: testBigDump
<------- Notice no error description here
विफलताएं: एमबी
1 विफलता हुई! टेस्ट: 1, दावे: 1, विफलताओं: 1.
क्या आपको कोई विचार है कि इसका क्या कारण हो सकता है? पहले ही, आपका बहुत धन्यवाद। आपके विन्यास में
पीएचपी स्मृति ठीक हो रहा है। आपको अलग-अलग त्रुटि मिल जाएगी। क्या आपने परीक्षण के आउटपुट को फ़ाइल में रीडायरेक्ट करने का प्रयास किया था? हो सकता है कि आपकी कमांड लाइन में इतनी लंबी स्ट्रिंग प्रदर्शित करने के लिए पर्याप्त स्मृति न हो। यह सहायक होगा यदि आप छद्म कोड के बजाय पूर्ण कार्य उदाहरण पोस्ट कर सकते हैं, इसलिए अन्य इसे दोहराने का प्रयास कर सकते हैं। –
जो छद्म कोड नहीं है। केवल त्रुटि का कारण बनने के लिए पर्याप्त है – Wes