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

标签 python python-3.x unit-testing

我人生中第一次尝试使用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 hereclassmethod docs here .

发生的事情是在suite.py line 163 setUpClass 作为简单函数(与绑定(bind)方法相对)在类(不是实例)上被调用。没有参数静默传递给 setUpClass,因此出现错误消息。

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

关于python - setUpClass() 缺少 1 个必需的位置参数 : 'cls' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49651815/

相关文章:

Python Numpy - 连接三个数组以形成矩阵或 3D 数组

python - 在 Python 中将数组与其自身网格化 n 次

java - 如何对创建新对象的类进行单元测试

c# - 对象与单元测试中引用的(深度)比较 (C#)

python - 无法从源代码构建 python3.4 (RHEL 6)

python - lambda - 'QuerySet' 对象没有属性 'xxx'

python - 使用python matplotlib时如何避免 "suptitle"和 "subplots"之间的重叠?

python - 在两列上使用 Pandas 分解

python-3.x - 为什么向图像添加高斯噪声会产生白屏?

c++ - 我可以将多个 BOOST 单元测试链接到一个测试二进制文件中吗?