注:
(1)ddt数据驱动中,测试用例的执行次数是由@data()传参的个数决定。传几个参数,就是执行几次测试用例。
(2)如果传的是多个元组(列表),那么可以使用@unpack解包元组与列表,但是需要注意的是,如果是元组和列表,元组和列表有多少个值,就必须用多少个变量来接收值。
(3)如果传的是字典,那么可以使用@unpack()进行解包,但需要注意的是:用例中的参数名称和个数必须和key保持一致。
import unittest
from ddt import ddt,data,unpack
#1 声明使用ddt框架
@ddt
class TestDdt(unittest.TestCase):
@data("百里")
def test_01_mashang(self,txt):
print(txt)
'''
运行结果:
百里
'''
@data("百里","微微")
def test_02_mashang(self, txt): # 此测试用例执行两次
print(txt)
'''
运行结果:
百里
微微
'''
@data(("百里", "微微"))
def test_03_mashang(self, txt):
print(txt)
'''
运行结果:
('百里', '微微')
'''
@data(("百里","微微"),("百里2","微微2"))
def test_04_mashang(self, txt):
print(txt)
'''
运行结果:
('百里', '微微')
('百里2', '微微2')
'''
@data(("百里", "微微"), ("百里2", "微微2"))
@unpack
def test_05_mashang(self, txt1,txt2):
print(txt1,txt2)
'''
运行结果:
百里 微微
百里2 微微2
'''
@data({"name":"d百里","testage": "d微微",},{ "name":"d百里2", "testage":"d微微2"})
@unpack
def test_06_mashang(self, name,testage):
print(name, testage)
'''
运行结果:
d百里 d微微
d百里2 d微微2
'''
if __name__ == '__main__':
unittest.main()