Python 中的属性错误

发布于 2024-08-02 20:39:31 字数 476 浏览 11 评论 0原文

我正在尝试向 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'” >。为什么?

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

各自安好 2024-08-09 20:39:31

作为 loadTestsFromTestCase 的参数,您尝试访问 Boy.BoyTest,即类对象 Boy< 的 BoyTest 属性/code>,它根本不存在,正如错误消息告诉您的那样。为什么不直接使用 BoyTest 呢?

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?

捶死心动 2024-08-09 20:39:31

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

这可以解决您的问题吗?

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?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文