2012-04-09 38 views
10

मैं सबसे आधुनिक मॉड्यूल का उपयोग कर पायथन में परीक्षण करने की कोशिश कर रहा हूं। फिलहाल मैंपायथन: क्या मॉड्यूल में सबसे अच्छे कार्य के साथ केवल विशिष्ट कार्यों का परीक्षण करना संभव है?

  1. फ़ंक्शंस के लिए परीक्षण लिखें।
  2. फ़ंक्शंस कोड को लागू करें।
  3. यदि टेस्ट पास होते हैं, तो अधिक परीक्षण और अधिक कोड लिखें।
  4. जब कार्य पूरा हो जाता है तो कार्यान्वित करने के लिए अगले कार्य पर जाएं।

तो एक ही मॉड्यूल में 3 या 4 (स्वतंत्र) कार्यों के बाद कई परीक्षणों के साथ मुझे सबसे अच्छा उत्पादन मिलता है। और यह थोड़ा परेशान है।

वहाँ एक रास्ता, doctest बताने के लिए "कार्यों a(), b() और c() का परीक्षण नहीं है" इतना है कि यह केवल अचिह्नित कार्यों चलाता है?

मुझे केवल doctest.SKIP ध्वज मिला, जो मेरी आवश्यकताओं के लिए पर्याप्त नहीं है। मुझे इस झंडे को कई लाइनों में रखना होगा। और अगर मैं एक चिह्नित समारोह फिर से जांच करना चाहते हैं, मैं कोड के माध्यम से मैन्युअल जाने के लिए और किसी भी झंडा मैं अंदर सेट ...

मुझे आशा है कि आप समझते हैं कि मैं क्या मतलब है को दूर करने के लिए होगा ... :-)

कोई सुझाव?

+0

कुछ त्वरित और गंदे परीक्षण के लिए डॉक्टस्ट खराब नहीं है, लेकिन मैं दृढ़ता से एक और अधिक उन्नत परीक्षण पुस्तकालय की तलाश करने का सुझाव देता हूं। पाइथन 'unittest' मॉड्यूल में बनाया गया वास्तव में बहुत अच्छा है। (http://docs.python.org/library/unittest.html) – Wilduck

+0

@ विल्डलक: मुझे अजगरों के बारे में पता है, धन्यवाद। लेकिन अब मुझे बस चाहिए * त्वरित और गंदे परीक्षण *। :-) – Aufwind

उत्तर

13

looks like आप run_docstring_examples को समारोह गुजर सकता है:

def f(a, b, c): 
    ''' 
    >>> f(1,2,3) 
    42 
    ''' 

if __name__ == '__main__': 
    import doctest 
# doctest.testmod() 
    doctest.run_docstring_examples(f, globals()) 

example गूगल के माध्यम से मिल गया।

+1

क्या यह काम नहीं करता है? –

+0

यह काम किया, धन्यवाद। देर से जवाब देने के लिए खेद है! मुझे 'doctest.testmod (verbose = True) 'की सारांश याद आती है, जहां यह आपको * 18 पास और 0 विफल * की तरह कुछ बताती है, और ऐसा। इसके अलावा यह वही है जो मैं खोज रहा था। :-) – Aufwind

+0

और एक प्रतिलिपि से और स्रोत फ़ाइल को संशोधित किए बिना ऐसा करने के बारे में क्या? – Chris

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

  • कोई संबंधित समस्या नहीं^_^