Frage

Ich versuche, einem Objekt in Python ein unittestes Attribut hinzuzufügen

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

Ich bekomme jedoch immer wieder "AttributeError: class Boy has no attribute 'BoyTest'" Wann immer ich anrufe self_test(). Wieso den?

War es hilfreich?

Lösung

Als Argument von loadTestsFromTestCase, Sie versuchen zugreifen Boy.BoyTest, dh die BoyTest Attribut des Klassenobjekts Boy, was einfach nicht existiert, wie der Fehler MSG Ihnen sagt. Warum benutzt du nicht einfach? BoyTest da stattdessen?

Andere Tipps

Wie Alex gesagt hat, Sie versuchen, BoyTest als Attibut 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))

Löst das Ihr Problem?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top