2011-08-30 15 views
5

मेरे पास test2.txt नामक फ़ाइल में निम्न सामग्री है।पायथन डॉक्टेस्ट अपवाद परीक्षण हैंडलिंग

>>> def faulty(): 
... yield 5 
... return 7 
Traceback(most recent call last): 
SyntaxError: 'return' with argument inside generator(<doctest test.txt[0]>,line 3) 

मैं python -m test2.txt के साथ परीक्षण चलाने का आह्वान करता हूं। नीचे दिए गए परिणाम मेरी अपेक्षा से काफी दूर हैं।

screenshot of terminal output

मेरे बारे में सोचा था कि परीक्षण सफल होना चाहिए क्योंकि मैं अपने test2.txt फ़ाइल में उम्मीद उत्पादन लिखा है और यह 'लगभग' से मेल खाता है कि मैं क्या सांत्वना उत्पादन से मिला है। मैंने 'File "G:\"'.... line जोड़ने का प्रयास किया? लेकिन परीक्षण अभी भी असफल रहा।

उत्तर

8

डॉक्टरेट अपेक्षित अपवादों के प्रारूप के साथ बेहद सावधान है। तुम एक अंतरिक्ष याद किया:

Traceback(most recent call last): इसके अलावा Traceback (most recent call last):

होना चाहिए, यह अभी भी विफल हो जाएगा, के रूप में अपने ट्रैसबैक संदेश अत्यधिक विशिष्ट है (और यह भी गलत करने से व्हाइटस्पेस है)! इतनी के रूप में, मिलान अपवाद के बारे में कम picky doctest बनाने के लिए doctest को ELLIPSIS या IGNORE_EXCEPTION_DETAIL झंडे का उपयोग करें:

>>> def faulty(): # doctest: +IGNORE_EXCEPTION_DETAIL 
...  yield 5 
...  return 7 
Traceback (most recent call last): 
SyntaxError: 'return' with argument inside generator (...) 

(ELLIPSIS भी यहाँ काम करेगा)

+0

आपको बहुत बहुत धन्यवाद। मैं शुरुआती पाठ फ़ाइल __extremely__ को सावधानी से संशोधित करने के लिए आपकी सलाह का पालन करता हूं और अब यह काम करता है हालांकि मैंने अभी तक ** झंडे ** की कोशिश नहीं की है। मैं कोशिश कर सकता हूं क्योंकि मेरी शिक्षा चलती है। – Tracy

+0

यह ध्यान देने योग्य है कि यह ध्वज अपवाद संदेश को अनदेखा भी कर सकता है। – ony

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