2013-02-08 13 views
19

मैं पाइथन के साथ कुछ unittests और setUpClass में कुछ पूर्व परीक्षण जांच कर रहा हूँ।setUpClass में एक पायथन unittest कैसे विफल हो सकता है?

class MyTests(unittest.TestCase): 

    @classmethod 
    def setUpClass(cls):  
     unittest.TestCase.fail("Test") 

    def test1(self): 
     pass 

if __name__ == '__main__': 
    unittest.main() 

त्रुटि TypeError: unbound method fail() must be called with TestCase instance as first argument (got str instance instead) देता है: निम्नलिखित सरल उदाहरण के रूप में, failsetUpClass भीतर - मैं कैसे एक unitest फेंक कर सकते हैं।

मैं समझता हूं कि त्रुटि के रूप में मुझे एक त्रुटि विधि मिलती है, और मेरे पास अभी तक MyClass का उदाहरण नहीं है। ऑन-द-मक्खी एक उदाहरण का उपयोग करते हुए की तरह

unittest.TestCase().fail("Test") 

भी काम नहीं करता है, unittest.TestCase के रूप में कोई परीक्षण है। MyClass में सभी परीक्षणों को कैसे विफल किया जाए, जब setUpClass में कुछ शर्त पूरी नहीं हुई है?

फ़ॉलोअर्स प्रश्न: क्या setUpClass में परीक्षण देखने का कोई तरीका है? अपने सेटअप उदाहरण विधि में

उत्तर

22

self.fail("test") डाल विफल रहता है सभी परीक्षणों

मुझे लगता है कि श्रेणी स्तर पर यह करने के लिए सबसे आसान तरीका है एक वर्ग चर बनाने के लिए है, तो कुछ की तरह:

@classmethod 
def setUpClass(cls): 
    cls.flag = False 

def setUp(self): 
    if self.flag: 
     self.fail("conditions not met") 

आशा इस क्या आप चाहते हैं

+0

मैं कर रहा हूँ काम करना चाहिए, जिनमें से' MyTest', तो 'self' इस स्तर पर परिभाषित नहीं है एक उदाहरण नहीं है। 'cls.fail()' भी काम नहीं करता है। – Alex

+0

जो लोग इसे नहीं देख पाए, निश्चित। – Raufio

22

एक सरल ज़ोर का उपयोग करते हुए `setUpClass` में

assert False, "I mean for this to fail" 
+0

मैं 'setUpClass' में हूं जो एक क्लासमेड है, इसलिए मेरे पास' self' नहीं है ... – Alex

+0

सरल 'assert' वास्तव में एक अच्छा विचार है ... – Alex

+0

शांत, अगर आप जो खोज रहे थे उसे स्वीकार करें :) – Greg

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