zoukankan      html  css  js  c++  java
  • Python中unittest采用不同的参数组合产生独立的test case

    我们在使用Python的unittest做自动化或者单元测试时,有时需要一个测试用例根据不同的输入、输出组合而执行多次,但是,unittest中一个用例只能有一组参数组合执行,如果采用循环的方式,在生成的测试报告中也只会有一个测试用例的统计,单实际上我们需要一组参数就统计为一个测试用例,又或者将用例复制N份(这种方式谁然可以满足需求,单实际上维护太麻烦,如果有一个改动,需要复制N份),那么我们应该采用什么样的办法来实现我们的需求呢?经过查找资料和百度,我们可以采用Python的setattr函数在运行时产生test_开头的测试用例方法,脚本如下:

    import unittest
    from test import test_support
    class MyTestCase(unittest.TestCase):
        def setUp(self):
            pass
    
        def clear(self):
            pass
    
        def getTest(self, arg1, arg2):#定义的函数,最终生成的测试用例的执行方法
            pass
    
        @staticmethod   
        def getTestFunc(arg1, arg2):
            def func(self):
                self.getTest(arg1, arg2)
            return func
            
    def __generateTestCases():
        arglists = [('arg11', 'arg12'), ('arg21', 'arg22'), ('arg31', 'arg32')]
        for args in arglists:
            setattr(MyTestCase, 'test_func_%s_%s'%(args[0], args[1]),MyTestCase.getTestFunc(*args))#通过setattr自动为TestCase类添加成员方法,方法以“test_func_”开头
    __generateTestCases() if __name__ =='__main__': unittest.main()

    到此,我们完成了所想要的,在此基础上可以增加参数化等,来实现自动化测试的要求。

  • 相关阅读:
    MKMapVIew学习系列2 在地图上绘制出你运行的轨迹
    WPF SDK研究 Intro(6) WordGame1
    WPF SDK研究 Intro(3) QuickStart3
    WPF SDK研究 Layout(1) Grid
    WPF SDK研究 目录 前言
    WPF SDK研究 Intro(7) WordGame2
    WPF SDK研究 Layout(2) GridComplex
    对vs2005创建的WPF模板分析
    WPF SDK研究 Intro(4) QuickStart4
    《Programming WPF》翻译 第6章 资源
  • 原文地址:https://www.cnblogs.com/ListenWind/p/4518454.html
Copyright © 2011-2022 走看看