如何将对象传递给unittest类

问题描述:

目前,我在python unittest中使用标准形式的testclasses。例如:如何将对象传递给unittest类

import unittest, myTestSystem 
class MyTestPackage(unittest.TestCase): 

    @classmethod 
    def setUpClass(cls): 
     cls.sut = myTestSystem.Setup() 
     cls.sut.connect(<IP>, <PORT>) 

    @classmethod 
    def tearDownClass(cls): 
     cls.sut.disconnect() 
     del cls.sut 

    def test1(self): 
     ret = dosomestuff() 
     self.assertEqual(ret, 0) 

if __name__ == "__main__": 
    unittest.main() 

但是,我有几个这些测试套件,因为它有一大包测试。把所有在一个TestClass将不是很好。问题是,对于测试套件的每次启动,我都会将我连接到正在测试的系统(sut),运行测试并在稍后再断开连接。 我的问题是,如果可能有一个通用的设置,转发一个sut对象到我的测试类并运行这些测试,通过使用这个sut对象。 (并在运行所有测试后关闭连接)

看看py.test它包含一些很好的扩展来完成软件包级别的测试。