https://blog.csdn.net/u013440574/article/details/81903666
官网文档:https://ddt.readthedocs.io/en/latest/
DDT (Data-Driven Tests) allows you to multiply one test case by running it with different test data, and make it appear as multiple test cases.一个测试用例可以用不同的测试数据执行多次。
DDT consists of a class decorator ddt
(for your TestCase
subclass) and two method decorators (for your tests that want to be multiplied):
data
: contains as many arguments as values you want to feed to the test.file_data
: will load test data from a JSON or YAML file.
有一个类装饰器 ddt,两个方法装饰器 data, file_data 支持jason和yaml文件
加了unpack装饰器是把元祖,列表,字典拆开传给测试案例
通常情况下,data中的数据按照一个参数传递给测试用例,如果data中含有: 元组,列表,字典等数据,默认是pack(包裹一起的),即一个列表作为一个变量 传给函数里的变量。如果把列表的数据进行分解,必须加上@unpack。
@data([a,b],[c,d])
无@unpack,那么[a,b]一个列表,作为一个参数传给测试用例
有@unpack,那么[a,b]被分解开,作为两个参数a,b 分别传给测试用例
import unittest
from ddt import ddt,data,unpack
@ddt
class MyTesting(unittest.TestCase):
def setUp(self):
pass
@data([1,2,3])
def test_1(self,value):
print('test_1 value is ',value)
'''
打印的值是[1,2,3]
'''
@data