setUpClass()缺少1个必需的位置参数:'cls'

Dim*_*ims 13 python unit-testing python-3.x

setUpClass()在生活中第一次尝试使用方法并写道:

class TestDownload(unittest.TestCase):

    def setUpClass(cls):
        config.fs = True
Run Code Online (Sandbox Code Playgroud)

得到了:

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'
Run Code Online (Sandbox Code Playgroud)

它意味着什么以及如何满足它?

Jac*_*din 20

你需要先@classmethod装饰一个装饰器def setUpClass(cls).

class TestDownload(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        config.fs = True
Run Code Online (Sandbox Code Playgroud)

setupClass这里文档classmethod文档都在这里.

什么情况是,在suite.py线163setUpClass被调用的类(不是实例),作为一个简单的函数(而不是一个绑定方法).静默地传递没有参数setUpClass,因此错误消息.

通过添加@classmethod装饰器,您说当TestDownload.setupClass()调用时,第一个参数是类TestDownload本身.