前面介紹了unittests中的參數化庫--ddt,今天介紹另外一種參數化庫Parameterized。
paramunittest
1、通過pip的方法進行安裝: pip install paramunittest
2、官方文檔:https://pypi.python.org/pypi/ParamUnittest/
3、源碼地址:https://github.com/rik0/ParamUnittest
這個時候安靜還是要提下,如果不知道這個庫是干什么的?那么我們就先去官方文檔中看看,或者去看源碼,這不好巧,源碼中提到有使用場景以及用法
這是安靜截圖的源碼內容,大家可以去源碼進行查看。從圖中可以看到,介紹了兩種方法,兩種方法都可以使用,具體的要看大家喜歡哪一種
小試牛刀
數據以元祖的形式進行存放。通過parametrized方法進行添加參數
# coding:utf-8 import unittest import paramunittest # 參數位置 @paramunittest.parametrized( ( "anjing", "test"), ("anjing1", "test"), ( "anjing2", "test"), ) class TestDemo(unittest.TestCase): def setParameters(self, name, test): self.user = name self.pwd = test def testcase(self): print("用戶名:%s" % self.user) print("密碼:%s" % self.pwd) if __name__ == "__main__": unittest.main(verbosity=2)
結果:
testcase (paramunittest.TestDemo_0) ... ok 用戶名:anjing testcase (paramunittest.TestDemo_1) ... ok 密碼:test testcase (paramunittest.TestDemo_2) ... ok 用戶名:anjing1 密碼:test ---------------------------------------------------------------------- 用戶名:anjing2 Ran 3 tests in 0.000s 密碼:test OK
我們從案例中可以看到參數不僅僅可以通過元祖的形式存放,也可以通過字典的形式
注意:字典形式的參數需要下面我們要進行一一對應。
# coding:utf-8 import unittest import paramunittest # 參數位置 @paramunittest.parametrized( {"user":'anjing',"pwd":"test"}, {"user":'anjing1',"pwd":"test1"}, {"user":'anjing2',"pwd":"test2"}, ) class TestDemo(unittest.TestCase): def setParameters(self, user, pwd): self.user = user self.pwd = pwd def testcase(self): print("用戶名:%s" % self.user) print("密碼:%s" % self.pwd) if __name__ == "__main__": unittest.main(verbosity=2)
結果:
用戶名:anjing 密碼:test testcase (paramunittest.TestDemo_0) ... ok 用戶名:anjing1 密碼:test1 testcase (paramunittest.TestDemo_1) ... ok 用戶名:anjing2 testcase (paramunittest.TestDemo_2) ... ok 密碼:test2 ---------------------------------------------------------------------- Ran 3 tests in 0.000s OK
嗯。。最近安靜工作比較忙,更新可能會慢點,但是都是會持續更新的,安靜也自己一點點學習,大家共同學習,共同進步