菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
182
0

unittests---参数化(paramunittest)

原创
05/13 14:22
阅读数 50377

  前面介绍了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

 

 

嗯。。最近安静工作比较忙,更新可能会慢点,但是都是会持续更新的,安静也自己一点点学习,大家共同学习,共同进步

 

发表评论

0/200
182 点赞
0 评论
收藏