python-ddt处理测试类数据

# ddt + unittest :来进行数据处理的第三方库
# 装饰器:在函数运行前运行
# 安装ddt :python -m pip install ddt

import unittest
from ddt import ddt,data,unpack

test_data1 = [1,3]
test_data2 = [[1,3],[4,5]]
test_data3 = [[1,3],[4,5,6]]
test_data4 = [{'no':'001','name':'kite'},{'no':'002','name':'shiguang'}]


@ddt # 装饰测试类
class TestMath(unittest.TestCase):
    @data(test_data1)
    def test_print_add1(self,item1):
        print("[1,3]的打印结果是---item1:",item1)  # item1: [1, 3]


    @data(test_data1)
    @unpack  # 根据逗号拆分,注意参数不对等的情况
    def test_print_add2(self,a,b):
        print("*[1,3]的打印结果是---a:",a)  # a: 1
        print("*[1,3]的打印结果是---b:",b)  # b: 3

    @data(test_data2)   # [[1,3],[4,5]]
    @unpack
    def test_print_add3(self, x1, x2):
        print("x1:", x1)  # x1: [1, 3]
        print("x2:", x2)  # x2: [4, 5]

    @data(*test_data2)  # 加*,脱一个参数 [1,3],[4,5]
    @unpack
    def test_print_add4(self, a, b):  # 根据逗号拆分,注意参数不对等,会报错
        print("a:", a)
        print("b:", b)   # 第一组a: 1 b: 3   第二组a: 4 b: 5

    @data(*test_data3)
    @unpack  # unpack拆分后, 参数太多,可以先@data(*test_data2),然后索引找要的值,不推荐使用unpack
    def test_print_add5(self, m = None, n = None, o = None):
        print('m:', m)  # m: (1, 3) m: (4, 5, 6)
        print('n:',n)
        print('o:',o)
        # m: 1          m: 4
        # n: 3          n: 5
        # o: None       o: 6
    @data(*test_data4)   # [{'no':'001','name':'kite'},{'no':'002','name':'shiguang'}]
    @unpack
    def test_print_add4(self, no, name):
        print("no:", no)
        print("name:", name)
        # no: 001        no: 002
        # name: kite     name: shiguang



if __name__ == '__main__':
    unittest.main()
原文地址:https://www.cnblogs.com/kite123/p/12195724.html