2013-09-30 15 views
14

निम्न कोड के लिए है: python3अजगर unittest.TestCase वस्तु कोई विशेषता 'runTest'

import unittest 

class Test(unittest.TestCase): 
    def test1(self): 
     assert(True == True) 

if __name__ == "__main__": 
    suite = unittest.TestSuite() 
    suite.addTest(Test()) 
    unittest.TextTestRunner().run(suite) 

उपयोग यह निष्पादित करने के लिए, निम्न त्रुटि उठाया है:

Traceback (most recent call last): 
    File "test.py", line 10, in <module> 
    unittest.TextTestRunner().run(suite) 
    File "/usr/lib/python3.2/unittest/runner.py", line 168, in run 
    test(result) 
    File "/usr/lib/python3.2/unittest/suite.py", line 67, in __call__ 
    return self.run(*args, **kwds) 
    File "/usr/lib/python3.2/unittest/suite.py", line 105, in run 
    test(result) 
    File "/usr/lib/python3.2/unittest/case.py", line 477, in __call__ 
    return self.run(*args, **kwds) 
    File "/usr/lib/python3.2/unittest/case.py", line 408, in run 
    testMethod = getattr(self, self._testMethodName) 
AttributeError: 'Test' object has no attribute 'runTest' 

लेकिन unittest.main() काम करता है।

उत्तर

12

आप एक परीक्षण लोडर को लागू करने की जरूरत है आप फ़ाइल में सभी परीक्षणों को चलाने के लिए चाहते हैं, बस unittest.main() पर कॉल करना पर्याप्त है:

if __name__ == "__main__": 
    unittest.main() 
0

TestCase सबक्लास के लिए वास्तविक परीक्षण runTest() विधि में किया गया है। सीधे शब्दों में करने के लिए अपने कोड बदलने के लिए:

if __name__ == "__main__": 
    suite = unittest.defaultTestLoader.loadTestsFromTestCase(Test) 
    unittest.TextTestRunner().run(suite) 
+1

हां, यह काम करता है। लेकिन क्या टेस्ट क्लास को बदले बिना इसे काम करने का कोई तरीका है? @ Bhajun-singh। –

+1

बस 'दावे' के बजाय 'पास' कहें (सही == सही) ' –

6

आप परीक्षा पद्धति का नाम (test1) निर्दिष्ट करने के लिए है::

import unittest 

class Test(unittest.TestCase): 
    def test1(self): 
     assert(True == True) 

if __name__ == "__main__": 
    suite = unittest.TestSuite() 
    suite.addTest(Test('test1')) # <---------------- 
    unittest.TextTestRunner().run(suite) 

या, यदि

class Test(unittest.TestCase): 
    def runTest(self): 
     assert(True == True) 
संबंधित मुद्दे