I'm trying to add a unittest attribute to an object 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
However, I keep getting "AttributeError: class Boy has no attribute 'BoyTest'" whenever I call self_test(). Why?
SilentGhost
322k67 gold badges312 silver badges294 bronze badges
asked Aug 27, 2009 at 4:28
biznez
4,04111 gold badges35 silver badges37 bronze badges
2 Answers 2
As the argument of loadTestsFromTestCase, you're trying to access Boy.BoyTest, i.e., the BoyTest attribute of class object Boy, which just doesn't exist, as the error msg is telling you. Why don't you just use BoyTest there instead?
answered Aug 27, 2009 at 4:33
Alex Martelli
888k175 gold badges1.3k silver badges1.4k bronze badges
Sign up to request clarification or add additional context in comments.
Comments
As Alex has stated you are trying to use BoyTest as an attibute of 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
Note the change:
suite.addTest(loader.loadTestsFromTestCase(Boy.BoyTest))
to:
suite.addTest(loader.loadTestsFromTestCase(BoyTest))
Does this solve your problem?
answered Aug 27, 2009 at 10:23
kjfletch
5,5143 gold badges34 silver badges39 bronze badges
Comments
lang-py