我有以下代码。
当我运行它时,我遇到了<code>too few args</code>的错误。
我没有显式调用<code>setup_class</code>方法,因此不知道如何传递任何参数。
我尝试使用<code>@classmethod</code>修饰符修饰该方法,但仍然看到同样的错误。
我看到的错误是这个 - <code>E TypeError: setup_class() takes exactly 2 arguments (1 given)</code>
需要注意的一点是 - 如果我没有向类传递任何参数,只传递了cls
,那么我就不会看到这个错误。
非常感谢任何帮助。
在发布之前,我已经查阅了问题 #1和问题 #2。但我并不理解这些问题中发布的解决方案或它们的工作原理。
class A_Helper:
def __init__(self, fixture):
print "In class A_Helper"
def some_method_in_a_helper(self):
print "foo"
class Test_class:
def setup_class(cls, fixture):
print "!!! In setup class !!!"
cls.a_helper = A_Helper(fixture)
def test_some_method(self):
self.a_helper.some_method_in_a_helper()
assert 0 == 0
Test_class
。我期望使用我提供的arg
实例化A_Helper
。然后使用该对象 (a_helper
),我希望调用A_Helper
中的方法。我是否在概念上遗漏了什么?如果我不给setup_class
提供参数,则相同的代码可以工作,而无需实例化任何内容。 - Muthu Palanisamya_helper
fixture(使用scope='class'
)并将其传递给test_some_method
是否更简单呢?通常,只有为了使其与经典的单元测试风格兼容而添加setup_class
处理到py.test中。我建议不要混淆这两个东西(即经典风格和py.test fixture风格)。 - freakish