我一生中第一次尝试使用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'
这是什么意思,如何满足?
最佳答案
您需要在@classmethod
之前放置一个def setUpClass(cls)
装饰器。
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
类本身。