zoukankan      html  css  js  c++  java
  • unittests---参数化(paramunittest)

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

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

  • 相关阅读:
    09不可变类型
    08浅拷贝和深拷贝
    07参数的传递
    06判等对象是否相等
    05引用类型以及特殊引用类型string
    报错:Missing type map configuration or unsupported mapping
    黄聪:VS2010开发T4模版引擎之基础入门
    黄聪:《网站高转换率法则》#2:你的网站是垃圾站吗?
    黄聪:《网站高转换率法则》#1:为什么要研究网站转换率?
    黄聪:百度知道中对HTML字符实体、字符编号,&开头字符的使用
  • 原文地址:https://www.cnblogs.com/qican/p/13932303.html
Copyright © 2011-2022 走看看