unittest框架中有多个测试方法,如何实现多个测试方法间参数的传递
如下方代码中参数self.sucessnum和 self.faillnum,需要把test_case2中的self.faillnum值传递给test_case3,以实现一个累加功能。但是unittest框架每个方法都是独立运行的,并没有调用关系。
import unittestfrom testframe.testframe_a import Report_testframeclass testcase_ind_a(unittest.TestCase): @classmethod def setUpClass(self): # print("b的setup方法") self.resultdic = {} self.sucessnum=0 self.faillnum=0 def test_case1(self): # print("b测试用例1") self.resultdic['b测试用例1']='b测试用例1成功' print(self.resultdic) self.sucessnum= self.sucessnum 1 def test_case2(self): # print("b测试用例2") self.resultdic['b测试用例2']='b测试用例2失败' print(self.resultdic) self.failnum= self.faillnum 1 def test_case3(self): # print("b测试用例3") self.resultdic['b测试用例3']='b测试用例3失败' print(self.resultdic) self.failnum= self.faillnum 1 @classmethod def tearDownClass(self): # print("b的teardown方法") reportobj = Report_testframe() reportobj.Addresult(str(self.resultdic),str(self.sucessnum),str(self.faillnum)) if __name__ == '__main__': unittest.main()
在unittest框架中多个方法之间需要进行参数的传递,可以定义全局变量(global)进行实现。
方法中给变量赋了初始值,再进行计算。
import unittestfrom testframe.testframe_a import Report_testframeclass testcase_ind_a(unittest.TestCase): global sucessnum, faillnum #定义全局变量 @classmethod def setUpClass(self): # print("b的setup方法") self.resultdic = {} def test_case1(self): # print("b测试用例1") self.resultdic['b测试用例1']='b测试用例1成功' print(self.resultdic) sucessnum = 0 globals()['sucessnum'] = sucessnum 1 def test_case2(self): # print("b测试用例2") faillnum = 0 self.resultdic['b测试用例2']='b测试用例2失败' print(self.resultdic) globals()['faillnum'] = faillnum 1 def test_case3(self): # print("b测试用例3") self.resultdic['b测试用例3']='b测试用例3失败' print(self.resultdic) globals()['faillnum'] = globals()['faillnum'] 1 @classmethod def tearDownClass(self): # print("b的teardown方法") reportobj = Report_testframe() reportobj.Addresult(str(self.resultdic),str(sucessnum),str(faillnum)) if __name__ == '__main__': unittest.main()
上方代码需优化的地方请各位大佬赐教。
赞 (0)