我正在尝试使用nosetests并具有以下结构
tests|-- test_main.py
|-- test_fileone.py
|-- test_filetwo.py
在test_main.py中我有以下代码
class A(unittest.TestCase):
@classmethod
def setUpClass(self):
print "Hello World"
self.objIwant="12"
@classmethod
def tearDownClass(cls):
self.objIwant.quit()
在test_fileone.py中
class B(A):
def test_loginpage(self):
testme(self.objIwant)
def test_logoutpage(self):
testme_other(self.objIWant)
#followed other def test_zzz(self)
在test_filetwo.py
中class C(A):
def test_clickpage(self):
clickme(self.objIwant)
def test_revertpage(self):
revertme(self.objIWant)
#followed other def test_zzz(self)
我得到的结果是(按顺序):
1. HelloWorld printed
2. Result of test_loginpage
3. Result of test_logoutpage
4. Helloworld printed
5. Result of test_clickpage
6. Result of test_revertpage
根据nosetest文档,我了解nosetests将索引所有测试/文件夹和里面的文件,并对以test_zzz开头的函数进行测试。 然而,让我感到困惑的是如何实际拥有C类和B类中的objIWant,它是从A类派生的,而没有打印两次“Hello World”(它应该只在初始化时打印一次,其他类应该有权访问来自父类的相同对象)
我怎样才能实现这一目标,这也更好地构建了我的单元测试模块?
答案 0 :(得分:0)
setUpClass
当测试套件遇到来自新类的测试时,将调用前一个类(如果有的话)中的tearDownClass(),然后调用新类中的setUpClass()。
如果您想让所有测试类只调用一次该方法,可以使用setUpModule
,如该链接的下一段所述。