ddt模塊包含了一個類的裝飾器ddt和兩個方法的裝飾器:
data:包含多個你想要傳給測試用例的參數;
file_data:會從json或yaml中加載數據;
unpanck:通常data中包含的每一個值都會作為一個單獨的參數傳給測試方法,如果這些值是用元組或者列表傳進來的,可以用unpack方法將其自動分解成多個參數
@data(a,b)
那么a和b各運行一次用例
@data([a,d],[c,d])
如果沒有unpack,那么[a,b]當成一個參數傳入用例運行
如果有unpack,那么[a,b]被分解開,按照用例中的兩個參數傳遞
如下代碼:
1 import unittest 2 import ddt #第三方庫 3 4 data=[[1,2],[3,4],[5,6]] 5 6 @ddt.ddt 7 8 class MyTestCase(unittest.TestCase): 9 10 只有一個參數時 11 @ddt.data(1,2,3) 12 def test_01(self,a): 13 print(a) 14 15 @ddt.data(*data)#表示可變參數取值為data([1,2],[3,4],[5,6]),若傳參是data,則后面的取值 data([[1,2],[3,4],[5,6]]) 16 @ddt.unpack 17 def test_02(self,a,b): 18 print(a,'----',b) 19 20 @ddt.data([1,2],[3,4])#和上面的相似,這里未使用變量 21 @ddt.unpack 22 def test_03(self,a,b): 23 print(a, '----', b)
