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

2024-09-24 02:13:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我这辈子第一次尝试使用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'

它意味着什么,如何满足它?


Tags: 方法inconfigtruedeftestsunittestfs
2条回答

您需要在def setUpClass(cls)之前放置一个@classmethod装饰器。

class TestDownload(unittest.TestCase):

    @classmethod
    def setUpClass(cls):
        config.fs = True

^{} docs are here^{} docs here

suite.py line 163中,setUpClass作为一个简单的函数(而不是一个绑定方法)被调用。没有参数以静默方式传递给setUpClass,因此出现错误消息。

通过添加@classmethoddecorator,您可以说当调用TestDownload.setupClass()时,第一个参数是类TestDownload本身。

在安装和拆卸之前添加@classmethod可以解决这个问题。@classmethod已绑定到类。

class LoginTest(unittest.TestCase):

   @classmethod
   def setUpClass(cls):

   **Your code**

   @classmethod
   def tearDownClass(self):

相关问题 更多 >