我人生中第一次尝试使用setUpClass()
方法并写道:
class TestDownload(unittest.TestCase):
def setUpClass(cls):
config.fs = True
得到:
Ran 0 tests in 0.004s
FAILED (errors=1)
Failure
Traceback (most recent call last):
File "/opt/anaconda3/lib/python3.5/unittest/suite.py", line 163, in _handleClassSetUp
setUpClass()
TypeError: setUpClass() missing 1 required positional argument: 'cls'
什么意思,如何满足?
最佳答案
您需要在def setUpClass(cls)
之前放置一个@classmethod
装饰器。
class TestDownload(unittest.TestCase):
@classmethod
def setUpClass(cls):
config.fs = True
setupClass
docs are here和 classmethod
docs here .
发生的事情是在suite.py line 163 setUpClass
作为简单函数(与绑定(bind)方法相对)在类(不是实例)上被调用。没有参数静默传递给 setUpClass
,因此出现错误消息。
通过添加 @classmethod
装饰器,您是说当 TestDownload.setupClass()
被调用时,第一个参数是类 TestDownload
本身。
关于python - setUpClass() 缺少 1 个必需的位置参数 : 'cls' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49651815/