__init__ for unittest.TestCase
我想添加一些东西,什么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
我希望所有的存根都能在这整套testing中只产生一次。 我不能使用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__
,所以您可能希望让基类为您处理参数。
安装unittest2并使用该包的unittest。
import unittest2
然后使用setupModule / tearDownModule或setupClass / tearDown类来实现特殊的初始化逻辑
更多信息: http : //www.voidspace.org.uk/python/articles/unittest2.shtml
另外你最有可能创build一个比unit testing更多的集成testing。 为testingselect一个好的名称来区分它们或放在不同的容器模块中。