我一生中第一次尝试使用
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
文档在这里和classmethod
文档在这里。
发生的情况是,在 suite.py 第 163 行中,
setUpClass
在类(不是实例)上作为简单函数(而不是绑定方法)被调用。没有参数默默地传递给 setUpClass
,因此会出现错误消息。
通过添加
@classmethod
装饰器,您是说当调用 TestDownload.setupClass()
时,第一个参数是类 TestDownload
本身。
在setUp和tearDown之前添加@classmethod将解决该问题。 @classmethod 与类绑定。
class LoginTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
**Your code**
@classmethod
def tearDownClass(self):