前面介绍了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
嗯。。最近安静工作比较忙,更新可能会慢点,但是都是会持续更新的,安静也自己一点点学习,大家共同学习,共同进步