在运行单个类中的测试之前调用的类方法。setUpClass
以类作为唯一参数调用,并且必须修饰为classmethod()
:
@classmethod
def setUpClass(cls):
...
有关更多详细信息,请参见类和模块装置。
您的版本缺少@classmethod
装饰器:
class MyUnitTest(unittest.TestCase):
@classmethod
def setUpClass(cls):
do_something_expensive_for_all_sets_of_tests()
class MyFirstSetOfTests(MyUnitTest):
@classmethod
def setUpClass(cls):
super(MyFirstSetOfTests, cls).setUpClass()
do_something_expensive_for_just_these_first_tests()
引发错误是因为MyFirstSetOfTests.setUpClass()
在 类 上而不是在实例上调用了该错误,但是您没有将方法标记为aclassmethod
,因此未在自动self
参数中传递该错误。在上面的更新代码中,我cls
改为使用该名称来反映名称引用了类对象。