Python中的属性错误
我想在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
但是,每次我调用 self_test()
时,总是出现 "AttributeError: class Boy has no attribute 'BoyTest'"
的错误。为什么会这样呢?
2 个回答
-1
正如Alex所说,你正在尝试把BoyTest当作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
注意这个变化:
suite.addTest(loader.loadTestsFromTestCase(Boy.BoyTest))
改成:
suite.addTest(loader.loadTestsFromTestCase(BoyTest))
这样做能解决你的问题吗?
3
在你使用的 loadTestsFromTestCase
这个函数里,你试图访问 Boy.BoyTest
,也就是类 Boy
里的 BoyTest
属性。但是这个属性并不存在,正如错误信息所说的那样。那你为什么不直接用 BoyTest
呢?