Question

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

Était-ce utile?

La solution

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 ne pas utiliser juste BoyTest il à la place?

Autres conseils

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))

Est-ce résoudre votre problème?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top