आप Django में एक यूनिट टेस्ट कैसे छोड़ते हैं?


92

Django में जबरन एक यूनिट टेस्ट कैसे छोड़ें?

@skipif और @skipunless सब मुझे मिला है, लेकिन मैं अभी डिबगिंग उद्देश्यों के लिए एक परीक्षण छोड़ना चाहता हूं जबकि मुझे कुछ चीजें सीधे मिलती हैं।

जवाबों:


147

पायथन के सबसे अच्छे मॉड्यूल में कुछ सज्जाकार हैं:

सादा पुराना है @skip:

from unittest import skip

@skip("Don't want to test")
def test_something():
    ...

यदि आप @skipकिसी कारण से उपयोग नहीं कर सकते हैं , @skipIfतो काम करना चाहिए। हमेशा तर्क के साथ छोड़ देने के लिए इसे ट्रिक करें True:

@skipIf(True, "I don't want to run this test yet")
def test_something():
    ...

एकतरफा डॉक्स

परीक्षण लंघन पर दस्तावेज़

यदि आप केवल कुछ परीक्षण फ़ाइलों को नहीं चलाना चाहते हैं, तो इसका सबसे अच्छा तरीका यह है कि fabविशेष उपकरण का उपयोग करें या विशेष परीक्षण चलाएं।


आह, मुझे नहीं पता था कि आप दुभाषिया को उस सच्चे तर्क के साथ छल कर सकते हैं। धन्यवाद!
user798719

क्या आप उपयोग न कर पाने के संभावित कारणों के बारे में विस्तार से बता सकते हैं @skip?
काल

1
तुम भी TestCase कक्षाएं छोड़ सकते हैं।
wieczorek1990

63

Django 1.10 यूनिट परीक्षणों के लिए टैग का उपयोग करने की अनुमति देता है । फिर आप --exclude-tag=tag_nameकुछ टैगों को बाहर करने के लिए ध्वज का उपयोग कर सकते हैं :

from django.test import tag

class SampleTestCase(TestCase):

    @tag('fast')
    def test_fast(self):
        ...

    @tag('slow')
    def test_slow(self):
        ...

    @tag('slow', 'core')
    def test_slow_but_core(self):
        ...

उपरोक्त उदाहरण में, आपके द्वारा slowचलाए जाने वाले टैग के साथ अपने परीक्षणों को बाहर करने के लिए :

$ ./manage.py test --exclude-tag=slow

क्या इसके विपरीत है --exclude-tag, उदाहरण के लिए , --include-tagलेकिन यह आदेश गैर-मौजूद है।
जॉनी क्यू

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.