我正在使用python unittest测试一个使用selenium的web应用程序。在我的催泪课上,我在打电话爬升失败但它返回“AttributeError”,表示在“string”中找不到“failureException”。你知道吗
下面是我的teardownClass方法的样子:
@classmethod
def tearDownClass(cls):
browser_logs = cls.driver.get_log("browser")
errors = [log_entry['message'] for log_entry in browser_logs if logentry['level'] == 'SEVERE']
if errors:
cls.fail(errors)
这将返回以下attributeError:
======================================================================
ERROR: tearDownClass (__main__.unitTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/shahrukh/Desktop/apollotest/test_users.py", line 239, in tearDownClass
cls.fail("error")
File "/usr/lib/python3.6/unittest/case.py", line 670, in fail
raise self.failureException(msg)
AttributeError: 'str' object has no attribute 'failureException'
----------------------------------------------------------------------
/usr/lib/python3.6/unittest中的“fail”方法/案例.py文件:
def fail(self, msg=None):
"""Fail immediately, with the given message."""
raise self.failureException(msg)
此方法是“Testcase”类的一部分
问题是上面的fail方法找不到self的引用。”我的代码中的“错误”是一个字符串对象。因此,当我调用cls.fail(errors)
时,它会考虑self=errors,而msg保持为None。你知道吗
如果我把代码语句改成cls.fail(cls, errors)
,我就不会遇到这个问题。你知道吗
我想知道为什么我会有这种行为?我遗漏了什么,因为根据我的理解cls.fail
应该意味着fail方法中的self
等于cls
。你知道吗
非常感谢你的帮助。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐