注:
(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"))@unpackdef test_05_mashang(self, txt1,txt2):print(txt1,txt2)'''运行结果:百里 微微百里2 微微2'''@data({"name":"d百里","testage": "d微微",},{ "name":"d百里2", "testage":"d微微2"})@unpackdef test_06_mashang(self, name,testage):print(name, testage)'''运行结果:d百里 d微微d百里2 d微微2'''if __name__ == '__main__':unittest.main()