unittest框架中有多个测试方法,如何实现多个测试方法间参数的传递

如下方代码中参数self.sucessnum和 self.faillnum,需要把test_case2中的self.faillnum值传递给test_case3,以实现一个累加功能。但是unittest框架每个方法都是独立运行的,并没有调用关系。

import unittest
from testframe.testframe_a import Report_testframe

class 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 unittest
from testframe.testframe_a import Report_testframe

class 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
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值