目录
ddt库安装
pip install ddt
ddt用法
- 调用ddt数据驱动,一定要在class上添加ddt的装饰器
@data()装饰器
@data(5,15)装饰器可以将括号中的数据以逗号进行分割传递
如果逗号分割完是元组、列表或字典需要再使用@unpack装饰器进行解包;字典中的key必须和方法的key保持一致;
import unittest
from ddt import ddt, data, unpack
@ddt
class DdtStudy(unittest.TestCase):
#元组
@data((5, '星期一'),(6, '星期二'))
@unpack
def test_01(self, a, b):
print(('今天{}摄氏度' + '{}').format(a, b))
#列表
@data(['面条','包子'],['米饭',123]) #代表两组数据
@unpack #对@data分解的数据进行二次拆分
def test_02(self, a, b):
print(('中午吃{}'+'晚上吃{}').format(a,b))
# 单个字典,拆分
# @data里的数据key必须与方法里的key保持一致
@data({"name": "jack", "age": 20})
@unpack
def test_10(self, name, age):
print(name, age)
# 多个字典, 拆分 数据key必须与方法里的key保持一
@data({"name": "peter", "age": 18, "addr": "chengdu"}, {"name": "lily", "age": 19, "addr": "chengdu"})
@unpack
def test_11(self, name, age, addr):
print('多个字典, 拆分')
print(name,age,addr)
if __name__ == '__main__':
unittest.TestCase()
@file_data()装饰器
@file_data('yaml文件')可以拆解yaml文件中的数据;
传的参数太多时,可以使用 **kwargs 整体传进来后,在使用['value']进行取值
yaml文件中的锚点和引用:
- 锚点:使用 &锚点名 进行定义
- 引用:使用 *锚点名 进行引用;
- 追加:在原有的内容上,进行锚点引用后进行追加 使用 <<