2014-04-02 8 views
5

में conftest का उपयोग कर मेरे पास अलग-अलग टेस्ट फ़ोल्डर्स (पैकेज) हैं। मैं एक विशिष्ट पैकेज (फ़ोल्डर) के लिए कुछ डेटा सेटअप और टियरडाउन करना चाहता हूं।सेटअप/टियरटाउन pytest

समस्या set_up() को उस फ़ोल्डर के परीक्षण मामलों को चलाने से पहले निष्पादित किया गया है लेकिन सभी टेस्टकेस चलाने के बाद, tear_down निष्पादित नहीं हो रहा है। यह अन्य संकुलों (फ़ोल्डर्स) के सभी टेस्टकेस को चलाने के बाद भी निष्पादित हो रहा है (पाइस्टेस्ट के पूरे सत्र के बाद)।

 [conftest.py] 

    @pytest.fixture(scope="session", autouse=True) 
     def set_up(request): 
      '''Test package setup''' 

     def tear_down(): 
      '''Test package teardown''' 

प्रत्येक फ़ोल्डर में __init__.py फ़ाइल है जो स्पष्ट है।

तो मैं उस फ़ोल्डर में सभी टेस्टकेस चलाने के बाद tear_down() निष्पादित करने के लिए कैसे करूं जिसके लिए set_up निष्पादित किया गया है?

जहाँ तक मुझे पता है: scope="module" इस मामले में बेकार है क्योंकि मैं प्रत्येक परीक्षण के लिए सेटअप और टियरडाउन नहीं करना चाहता हूं।

कोई भी मदद महान होगी। धन्यवाद

+0

आप किस प्रकार का डेटा सेट अप और फायर कर रहे हैं? जैसा कि मैं आपका प्रश्न समझता हूं, आप "पैकेज" के दायरे के साथ एक स्थिरता की तरह कुछ चाहते हैं, जहां आप पैकेज निर्दिष्ट कर सकते हैं। क्या वो सही है? –

+0

हाँ पैकेज स्थिरता। डेटा मूल रूप से कैसंड्रा डेटाबेस में कुछ मान डालने से संबंधित है, क्योंकि मैं परीक्षण शुरू करता हूं और उस फ़ोल्डर में सभी परीक्षण समाप्त होने के बाद मैं सभी तालिकाओं को छोटा करना चाहता हूं। नाक का उपयोग करके –

उत्तर

7

पायस्टेट सीधे पैकेज स्तर फिक्स्चर का समर्थन नहीं करता है। न तो unittest करता है।

मुख्य परीक्षण ढांचे के लिए, मुझे विश्वास है कि nose is the only one to support package fixtures। हालांकि, नाक 2 पैकेज स्थिरता समर्थन छोड़ रहा है। nose2 docs देखें।

पायटेस्ट xunit शैली जुड़नार के लिए module, function, class, and method level fixtures का समर्थन करता है।

+0

तब अच्छा विचार नहीं है। मुझे यह पता था, लेकिन अगर मैंने कुछ याद किया तो मैंने इस सवाल को उठाया। कोई अच्छा समाधान नहीं है लेकिन वैसे भी धन्यवाद। –

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