2010-04-15 7 views
6

मैं अजगर इकाई परीक्षण मॉड्यूल का उपयोग कर रहा हूँ। मैं सोच रहा हूं कि हर 2 टेस्ट मामलों में कुछ देरी जोड़ने के लिए वैसे भी है? क्योंकि मेरा यूनिट परीक्षण सिर्फ http अनुरोध कर रहा है और मुझे लगता है कि सर्वर एक ही आईपी से लगातार अनुरोध को अवरुद्ध कर सकता है।पायथन यूनिट परीक्षण। परीक्षण मामलों के बीच कुछ नींद का समय कैसे जोड़ें?

+2

एक परीक्षण जो इस पर निर्भर करता है वास्तविक लाइव HTTP सर्वर वह नहीं है जो अधिकांश लोग यूनिट परीक्षण कहेंगे। आम तौर पर यूनिट परीक्षणों के लिए आप सर्वर व्यवहार का नकल करते हैं, इसलिए आपके पास निर्भरता नहीं है जहां आपको * सोने की आवश्यकता है। हालांकि यह जानना अभी भी उपयोगी है कि एकीकरण परीक्षण लिखने के लिए इसे कैसे किया जाए। –

उत्तर

11

अपने TestCase

class ExampleTestCase(unittest.TestCase): 
    def setUp(self): 
     pass 

    def tearDown(self): 
     time.sleep(1) # sleep time in seconds 

की tearDown विधि यह है कि TestCase

संपादित के भीतर हर परीक्षण के बाद निष्पादित करेंगे अंदर एक नींद रखो: setUp जोड़ा documentation लगता है क्योंकि शायद आप कर सकते हैं कि इंगित करने के लिए एक के बिना tearDown है, लेकिन यह स्पष्ट नहीं है

+0

बस स्पष्टीकरण के लिए, मैंने इसे 'सेटअप' के बजाय 'आंसू डाउन' में किया क्योंकि यह "बीच" कहा गया था और यह स्वचालित रूप से मुझे लगता है कि यह वांछनीय था कि पहला व्यक्ति तुरंत चलाएगा (जो इस मामले में अस्पष्ट है)। यदि इससे पहले परीक्षण के पहले या बाद में देरी के बारे में कोई फर्क नहीं पड़ता, तो इसे 'सेटअप' में डालकर 'टायरडाउन' छोड़कर ठीक काम भी होगा। –

+0

यह काम किया। आपका बहुत बहुत धन्यवाद – zsong

1
import time 
time.sleep(2.5) # sleeps for 2.5 seconds 

आप विलंब को एक्स और वाई के बीच यादृच्छिक मान बनाने पर विचार करना चाहेंगे।

+0

आपका मतलब है कि मुझे हर टेस्ट केस के बाद इसे रखना होगा? क्या कोई सार्वभौमिक सेटिंग्स है जो मैं एक ही चीज़ को प्राप्त करने के लिए उपयोग कर सकता हूं? – zsong

+0

अपना कोड देखने के बिना बताना मुश्किल है ... लेकिन आप शायद अपने सभी टेस्ट केस एक सामान्य टेस्टकेस से प्राप्त कर सकते हैं जो 'def setUp (self): 'विधि प्रदान करता है जो' time.sleep' कॉल करता है। – ChristopheD

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