Pregunta

Estoy tratando de agregar un atributo más unido a un objeto 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

Sin embargo, sigo obteniendo "AttributeError: class Boy has no attribute 'BoyTest'" Siempre que llamo self_test(). ¿Por qué?

¿Fue útil?

Solución

Como el argumento de loadTestsFromTestCase, estás tratando de acceder Boy.BoyTest, es decir, el BoyTest Atributo del objeto de clase Boy, que simplemente no existe, como le dice el mensaje de error. ¿Por qué no usas? BoyTest en su lugar?

Otros consejos

Como Alex ha declarado que estás tratando de usar boytest como atributo 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

Tenga en cuenta el cambio:

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

a:

suite.addTest(loader.loadTestsFromTestCase(BoyTest))

¿Esto resuelve tu problema?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top