2009-08-27 7 views
0

Je suis en train d'ajouter un attribut unittest à un objet en PythonAttribut erreur en 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 

Cependant, je continue à recevoir "AttributeError: class Boy has no attribute 'BoyTest'" chaque fois que je l'appelle self_test(). Pourquoi?

Répondre

3

Comme l'argument de loadTestsFromTestCase, vous essayez d'accéder à Boy.BoyTest, à savoir l'attribut BoyTest d'objet de classe Boy, qui n'existe tout simplement pas, comme le msg d'erreur vous dit. Pourquoi n'utilisez-vous pas simplement BoyTest à la place?

-1

Comme Alex a déclaré que vous essayez d'utiliser BoyTest comme attibute de Boy:

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 

Notez le changement:

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

à:

suite.addTest(loader.loadTestsFromTestCase(BoyTest)) 

-t-il résolu ton problème?