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()

上方代码需优化的地方请各位大佬赐教。

来源:https://www.icode9.com/content-4-852501.html

(0)

相关推荐

  • python笔记39-unittest框架如何将上个接口的返回结果给下个接口适用(面试必问)

    前言 面试必问:如何将上个接口的返回结果,作为下个接口的请求入参?使用unittest框架写用例时,如何将用例a的结果,给用例b使用. unittest框架的每个用例都是独立的,测试数据共享的话,需设 ...

  • 自动化搭建环境及基础理论

    在dos命令中输入python,在dos命令中输入pip Pip是Python官方推荐的包管理工具,提供了对Python包的查找.下载.安装.卸载的功能,属于python的一部分. Python3.0 ...

  • 课件6——单元测试框架unittest

    单元测试框架unittest 单元测试 单元测试(unit testing)是指对软件中的最小可测试单元进行检查和验证.对于单元测试中单元的含义,一般来说,要根据实际情况去判定其具体含义,如C语言中单 ...

  • 接口自动化

    一.自动化分类 (1)接口自动化 > python/java+requests+unittest框架来实现 > python/java+RF(RobotFramework)框架来实现--对 ...

  • Selenium2+python自动化70-unittest之跳过用例(skip)

    前言 当测试用例写完后,有些模块有改动时候,会影响到部分用例的执行,这个时候我们希望暂时跳过这些用例. 或者前面某个功能运行失败了,后面的几个用例是依赖于这个功能的用例,如果第一步就失败了,后面的用例 ...

  • selenium+python自动化81-报告优化

    一. 优化html报告 为了满足小伙伴的各种变态需求,为了装逼提示逼格,为了让报告更加高大上,测试报告做了以下优化: - 测试报告中文显示,优化一些断言失败正文乱码问题 - 新增错误和失败截图,展示到 ...

  • selenium+python自动化97--unittest参数化(paramunittest)

    前言 paramunittest是unittest实现参数化的一个专门的模块,可以传入多组参数,自动生成多个用例 前面讲数据驱动的时候,用ddt可以解决多组数据传入,自动生成多个测试用例.本篇继续介绍 ...

  • selenium+python自动化89-unittest多线程执行用例

    前言 假设执行一条脚本(.py)用例一分钟,那么100个脚本需要100分钟,当你的用例达到一千条时需要1000分钟,也就是16个多小时... 那么如何并行运行多个.py的脚本,节省时间呢?这就用到多线 ...

  • Python单元测试框架-UnitTest以及测试报告

    时间主题9.4(周三)20:00python单元测试框架 在周三的公众号文中,芒果给大家提前剧透了分层自动化测试过程中最重要的一环--单元测试.晚上的测试运维直播课程中,芒果带着大家一起了解了Pyth ...

  • Selenium2+python自动化67-用例失败自动截图

    前言: 装饰器其实就是一个以函数作为参数并返回一个替换函数的可执行函数 上一篇讲到用装饰器解决异常后自动截图,不过并没有与unittest结合,这篇把截图的装饰器改良了下,可以实现用例执行失败自动截图 ...