zoukankan      html  css  js  c++  java
  • python -- unittest测试用例函数无法传参的处理方法(ddt)

    1、超继承

      重写测试用例类的init方法,如下所示。

    import requests
    import unittest
    
    class XiaoheiCases(unittest.TestCase):
        def __init__(self,methodName,url,data,cookies=None):
            super(XiaoheiCases,self).__init__(methodName)
            self.url = url
            self.data = data
            self.cookies = cookies

    2、ddt模块

    '''
    ddt结合unittest来进行数据处理的第三方库,很强大
    安装pip install ddt
    ddt需要和unittest或pytest结合使用
    '''
    from ddt import ddt,data,unpack
    import unittest
    test_print = [1,3]
    test_b = [[1,2,3],[4,5,6]]
    
    @ddt #装饰测试类
    class TestMath(unittest.TestCase):
    
        @data(test_print) #装饰测试函数,通过这种方式传参,如果通过*test_data传参,则有几个参数,执行几次测试用例
        def test_print(self,item):
            print('item:{0}'.format(item))
    
        @data(*test_b)
        @unpack   #当要取内层嵌套,如test_b的值时,用unpack修饰
        def test_b(self,i,j,k): #使用unpack后,必须内层嵌套的值都以变量的形式传入,否则报错
            print('我是i:{0},j:{1},k:{2}'.format(i,j))

      注意:ddt模块在加载测试用例的时候,不能使用实例化的方式加载(suit.addTest(XiaoheiCases(‘test1’)),而应使用加载器的方式加载(loadder)

  • 相关阅读:
    js对象写法
    IE6双边距bug及其解决办法
    图片轮播
    盒子水平和垂直同时居中方法
    选项卡切换
    针对IE6兼容png
    html5兼容
    sublime快捷键总结
    七种设计原则
    Git基本命令
  • 原文地址:https://www.cnblogs.com/hzgq/p/11979684.html
Copyright © 2011-2022 走看看