ddt(数据驱动)的使用
(1)首先安装ddt,pip install ddt
(2)导入包 from ddt import ddt,data,unpack
@ddt 装饰测试类
@data 装饰测试方法,拿到几条数据,就执行几条用例
重点多瞅瞅
@unpack
如果unpack后面的参数少于5个 推荐用unpack 要注意参数不对等的情况,提供对应的参数来接收变量
如果对字典进行unpack 参数名必须与你的字典key对应
test_data_2=[{"no":1,"name":"lili","sex":"女"},{"no":2,"name":"lingling"}]
@data(*test_data_2)
要注意参数不对等的情况,提供对应个数的参数来接收变量
如果实在不对等可以将某个参数值设置为None
@unpack #如果对字典进行unpack 参数名需要与你的字典key对应
def test_print_dict(self,no,name,sex=None):
print("no:",no)
print("name:",name)
print("sex:", sex)
*号意为解包。入参为测试数据,ddt会按逗号分隔,将数据拆分
from ddt import ddt,data,unpack
import unittest
test_data=[10,20]
test_data_2=[{"no":1,"name":"lili","sex":"女"},{"no":2,"name":"lingling"}]
@ddt
class TestMath(unittest.TestCase):
@data(test_data)
@unpack
def test_print_data(self,a,b):
print("a:",a)
print("b:",b)
print("")
@data(test_data)
@unpack
def test_add(self,a,b):
print(a+b)
print("")
@data(*test_data_2)
@unpack
def test_print_dict(self,no,name,sex=None):
print("no:",no)
print("name:",name)
print("sex:", sex)
print("")
if __name__ == '__main__':
unittest.main()
运行结果:
30
a: 10
b: 20
no: 1
name: lili
sex: 女
no: 2
name: lingling
sex: None