importunittest
from ddt import
ddt,data,unpack
test_data = [[1,2],[3,4]]
@ddt #裝飾類
class
testmethod(unittest.testcase):
@data(test_data) #裝飾方法
deftest_print(self,a):
print(a)
返回結果為:
ran 1 test in0.001s
ok[[1, 2], [3, 4]]
ddt 是第三方模組,需安裝, pip install ddt
ddt包含類的裝飾器ddt和兩個方法裝飾器data(直接輸入測試資料)
通常情況下,data中的資料按照乙個引數傳遞給測試用例,如果data中含有多個資料,以元組,列表,字典等資料,需要自行在指令碼中對資料進行分解或者使用unpack分解資料。
@data(a,b)
那麼a和b各執行一次用例
傳入的資料引數前加上*號,則是拆分,最多只能加乙個*,多個*號無用
importunittest
from ddt import
ddt,data,unpack
test_data = [[1,2],[3,4]]
@ddt
class
testmethod(unittest.testcase):
@data(*test_data)
deftest_print(self,a):
print(a)
返回結果:
[1, 2][3, 4]
ran 2 tests in
0.000s
ok
unpack是對拆分的每個元素以逗號進行再次拆分,方法的動態傳參的個數要相對應
importunittest
from ddt import
ddt,data,unpack
test_data = [[1,2],[3,4]]
@ddt
class
testmethod(unittest.testcase):
@data(*test_data)
@unpack
deftest_print(self,a,b):
(a)
print(b)
返回結果:
ran 2 tests in0.002sok1
234
如果unpack要拆分的元素是列表,且列表內的元素個數不一致,如下:
importunittest
from ddt import
ddt,data,unpack
test_data = [[1,2],[3,4,5]]
@ddt
class
testmethod(unittest.testcase):
@data(*test_data)
@unpack
def test_print(self,a,b,c=none):
(a)
(b)
print(c)
返回結果:
12none34
5ran 2 tests in
0.001s
ok
如果unpack拆分是字典,方法的動態引數必須是字典的key,否則會報錯
importunittest
from ddt import
ddt,data,unpack
test_data = [,
]@ddt
class
testmethod(unittest.testcase):
@data(*test_data)
@unpack
deftest_print(self,no,name):
(no)
print(name)
返回結果:
ran 2 tests in0.001s
ok1lili
2godan
程序已結束,退出** 0
python 資料驅動 ddt
一。初始ddt 1.安裝 pip install ddt 2.匯入ddt import ddt 3.初步使用 注意 需要和unittest一起使用 cases expected expected ddt.ddt class test math unittest.testcase ddt.data c...
python 資料驅動測試 ddt
coding utf 8 project jiaxy author jimmy file study ddt.py ide pycharm community edition time 2018 12 06 14 48 blog study ddt data driver test 資料驅動測試 1...
玩轉 appium的資料驅動ddt
資料驅動型別包括 ddt excel paramunittst yaml csv json 用法基本相同 看你自己喜歡那個 mua ddt 先看圖 了解ddt需要那些元素 看 a 這裡看你心情了 可以寫道乙個json檔案裡 也可以寫入其他檔案裡 呼叫就行了 我用的資料少,就寫在這裡了 重點來了!兩種...