我想添加几件事unittest.TestCase班级在被初始化后会做,但我不知道该怎么做。

现在我要这样做:

#filename test.py

class TestingClass(unittest.TestCase):

    def __init__(self):
        self.gen_stubs()

    def gen_stubs(self):
        # Create a couple of tempfiles/dirs etc etc.
        self.tempdir = tempfile.mkdtemp()
        # more stuff here

我希望在整个测试中只生成所有存根一次。我不能使用setUpClass()因为我正在使用Python 2.4(我也无法在Python 2.7上工作)。

我在这里做错了什么?

我得到这个错误:

 `TypeError: __init__() takes 1 argument (2 given)` 

…以及当我将所有存根代码移动到__init__当我用命令运行它python -m unittest -v test

答案

尝试这个:

class TestingClass(unittest.TestCase):

    def __init__(self, *args, **kwargs):
        super(TestingClass, self).__init__(*args, **kwargs)
        self.gen_stubs()

你正在覆盖TestCase__init__,因此您可能需要让基类为您处理参数。

来自: stackoverflow.com