2009-08-27 9 views
0

Ich versuche, ein Attribut Unittest auf ein Objekt in PythonAttribut Fehler in Python

class Boy: 

    def run(self, args): 
     print("Hello") 

class BoyTest(unittest.TestCase) 

    def test(self) 
     self.assertEqual('2' , '2') 

def self_test(): 
    suite = unittest.TestSuite() 
    loader = unittest.TestLoader() 
    suite.addTest(loader.loadTestsFromTestCase(Boy.BoyTest)) 
    return suite 

jedoch hinzufügen, ich bekomme immer wieder "AttributeError: class Boy has no attribute 'BoyTest'" wenn ich self_test() nennen. Warum?

Antwort

3

Als Argument von loadTestsFromTestCase, versucht man Boy.BoyTest zugreifen, das heißt die BoyTest Attribut der Klasse Objekt Boy, die nicht nur existieren, wie der Fehler msg Sie sagt. Warum benutzen Sie nicht einfach BoyTest?

-1

Wie Alex hat erklärt, Sie versuchen, BoyTest als attibute von Boy zu verwenden:

class Boy: 

    def run(self, args): 
     print("Hello") 

class BoyTest(unittest.TestCase) 

    def test(self) 
     self.assertEqual('2' , '2') 

def self_test(): 
    suite = unittest.TestSuite() 
    loader = unittest.TestLoader() 
    suite.addTest(loader.loadTestsFromTestCase(BoyTest)) 
    return suite 

Beachten Sie die Änderung:

suite.addTest(loader.loadTestsFromTestCase(Boy.BoyTest)) 

zu:

suite.addTest(loader.loadTestsFromTestCase(BoyTest)) 

Enthält diese lösen Ihr Problem?

Verwandte Themen