जवाबों:
व्यक्तिगत परीक्षण विधियों या कक्षाएं दोनों को unittest.skip
डेकोरेटर का उपयोग करके अक्षम किया जा सकता है ।
@unittest.skip("reason for skipping")
def test_foo():
print('This is foo test case.')
@unittest.skip # no reason needed
def test_bar():
print('This is bar test case.')
अन्य विकल्पों के लिए, स्किपिंग परीक्षणों और अपेक्षित विफलताओं के लिए डॉक्स देखें ।
@unittest.skip
ठीक भी काम करता हूं ।
@unittest.skip
काम नहीं करता है।
आप परीक्षण को अक्षम करने के लिए डेकोरेटर का उपयोग कर सकते हैं जो फ़ंक्शन को लपेट सकता है और टेस्टकेस को चलाने के लिए गोगोलेस्ट या अजगर इकाई परीक्षण को रोक सकता है।
def disabled(f):
def _decorator():
print f.__name__ + ' has been disabled'
return _decorator
@disabled
def testFoo():
'''Foo test case'''
print 'this is foo test case'
testFoo()
आउटपुट:
testFoo has been disabled
नवीनतम संस्करण (2.7 - अप्रकाशित) टेस्ट स्किपिंग / अक्षम करने का समर्थन करता है । आप बस इस मॉड्यूल को प्राप्त कर सकते हैं और इसे अपने मौजूदा पायथन इंस्टॉल पर उपयोग कर सकते हैं। यह शायद काम करेगा।
इस से पहले, मैं परीक्षण मैं चाहता था करने के लिए छोड़ दिया नाम बदलने के लिए प्रयोग किया जाता है xtest_testname
से test_testname
।
यहाँ यह करने के लिए एक त्वरित लिपि है। मेरी योग्यता थोड़ी कठोर है, इसलिए इसके लिए किसी भी समस्या के लिए मैं पहले से माफी चाहता हूं। Untested।
(defun disable_enable_test ()
(interactive "")
(save-excursion
(beginning-of-line)
(search-forward "def")
(forward-char)
(if (looking-at "disable_")
(zap-to-char 1 ?_)
(insert "disable_"))))
बस @unittest.SkipTest
डेकोरेटर को टेस्ट से ऊपर रखना पर्याप्त है।
unittest.skip
(बिना कारण) मुझे पाइथन 2 में त्रुटि देता है, लेकिन पाइथन 3 में नहीं।
प्रश्न के "अस्थायी रूप से अक्षम" भाग पर ध्यान केंद्रित करना, सबसे अच्छा जवाब कुछ हद तक उपयोग के मामले पर निर्भर करता है। उपयोग मामला जो मुझे यहां लाया है, मैं एक फ़ंक्शन पर परीक्षण संचालित विकास कर रहा हूं। इस प्रक्रिया में, मैं क्रमिक रूप से परीक्षण लिखता हूं और अक्सर डिबगिंग के लिए फ़ंक्शन में ब्रेक पॉइंट का उपयोग करता हूं। अगर मैं हर बार केवल टेस्ट रनर को चलाता हूं, तो मैं पहले से ही काम करने वाले परीक्षणों के लिए विराम बिंदुओं पर रोक देता हूं। "स्किप" जोड़ना या परीक्षण का नाम या ऐसा कुछ करना जो मैं चाहता हूं वह नहीं है क्योंकि जब मैं फ़ंक्शन लिख रहा हूं, तो मैं चाहता हूं कि सभी परीक्षण चलें। अगर मैंने "स्किप" का उपयोग किया तो मुझे वापस जाना होगा और "अनस्किप" करना होगा।
मेरे उपयोग के मामले के लिए, समाधान टेस्ट रनर में निहित है, टेस्ट कोड में नहीं। मैं पाइस्टेस्ट का उपयोग करता हूं । पाइस्टेस्ट के साथ, कमांड लाइन से एकल टेस्ट निर्दिष्ट करना आसान है:
pytest PYTHON_FILENAME.TEST_CLASS.TEST_NAME
(अपने मूल्यों के साथ कैप को बदलें)।
मैं समझता हूं कि यह प्रश्न अजगर-इकाई के लिए था। मैंने लंबे समय में इसका इस्तेमाल नहीं किया है। मुझे आश्चर्य नहीं होगा अगर इसमें कुछ ऐसा ही था। यदि नहीं, तो आप आसानी से pytest पर जा सकते हैं। आपको अपना कोड संशोधित करने की आवश्यकता नहीं है। बस इसे इंस्टॉल करें और अपने टेस्ट रनर कमांड को बदलें।
इसके अलावा, मैं PyCharm प्रो का उपयोग करें। मेरे परीक्षण कोड को दिखाने वाले पृष्ठ पर, प्रत्येक परीक्षण के लिए दोष के बगल में एक छोटा आइकन है। मैं उस आइकन पर क्लिक कर सकता हूं और उस परीक्षण को व्यक्तिगत रूप से चला सकता हूं।
@unittest.SkipTest
@unittest.skip