2013-09-30 30 views
14

sahiptir:Python unittest.TestCase nesne hiçbir özelliği 'ni deneBakalım' Aşağıdaki kodu için

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) 

Kullanım python3 bunu gerçekleştirmenin aşağıdaki hata ortaya çıkar:

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' 

Ama unittest.main() eser.

cevap

12

: Sadece için kodunuzu değiştirmeniz Dosyada tüm testleri çalıştırmak istediğinizde, sadece unittest.main() numaralı telefonu aramak yeterlidir:

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

TestCase alt sınıfının gerçek testi, runTest() yönteminde gerçekleştirilir. Eğer

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) 

Veya: Test yöntemi adını (test1) belirtmek zorunda

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

Evet, işe yarıyor. Test sınıfını değiştirmeden çalışmanın bir yolu var mı? @ Bhajun-Singh. –

+1

Sadece "pass" yerine "assert (True == True)" deyin –

6

: Bir deney yükleyici çağırmak gerekir

class Test(unittest.TestCase): 
    def runTest(self): 
     assert(True == True) 
İlgili konular