zoukankan      html  css  js  c++  java
  • Python数据驱动ddt

    import ddt
    import unittest

    """
    ddt模块包含了一个类的装饰器ddt和两个方法的装饰器:

    data:包含多个你想要传给测试用例的参数;

    file_data:会从json或yaml中加载数据;

    通常data中包含的每一个值都会作为一个单独的参数传给测试方法,如果这些值是用元组或者列表传进来的,可以用unpack方法将其自动分解成多个参数。
    """
    test_data2 = [{"a": "1", "pwd": "123456"},
    {"b": "2", "pwd": "123456"}]

    @ddt.ddt
    class Test(unittest.TestCase):
    def setUp(self):
    print("Start!")

    def tearDown(self):
    print("end!")

    @ddt.file_data('url.yaml')
    def test_ddt1(self, **data):
    print(data)

    """
    执行2次,yaml文件中是一个含有2个元素的list
    Start!
    {'url': 'http://feature.v3.0.1.xxxx.com/albums',
    'headers': {'Authorization': 'x3JpemF0aW9ucyIsIxxwz8V1gn80yE-b8',
    'Accept': 'application/vnd.xxx.admin+json'},
    'Body': {'url': 'http://list.youku.com/show/ixxxbf.html?spm=a2h0j.11185381.bpmodule-playpage-righttitle.5~H2~A'},
    'code': {'status_code': 200, 'message': 'success'}}
    end!
    Start!
    {'url': 'http://feature.v3.0.1.xxxx.com/albums',
    'headers': {'Authorization': 'x3JpemF0aW9ucyIsIxxwz8V1gn80yE-b8',
    'Accept': 'application/vnd.xxx.admin+json'},
    'Body': {'url': 'http://list.youku.com/show/ixxxbf.html?spm=a2h0j.11185381.bpmodule-playpage-righttitle.5~H2~A'},
    'code': {'status_code': 200, 'message': 'success'}}
    end!
    """

    @ddt.data(*test_data2)
    def test_ddt2(self, data):
    print(data)
    return data
    """
    Start!
    {'a': '1', 'pwd': '123456'}
    end!
    Start!
    {'b': '2', 'pwd': '123456'}
    end!
    """


    # suit = unittest.TestSuite()
    # suit.addTest(Test('test_ddt1'))
    # suit.addTest(unittest.makeSuite(Test))
    # unittest.TextTestRunner().run(suit)

    if __name__ == "__main__":
    unittest.main()
  • 相关阅读:
    【3-9】数据库基本应用
    Oracle所有分析函数<转>
    Oracle数据库row_number详解<转>
    MVC人员管理系统
    MVC Razor语法
    MVC基础
    邮箱验证
    jQuery入门基础(动画效果)
    js前台与后台数据交互
    ajax入门基础
  • 原文地址:https://www.cnblogs.com/xinjing-jingxin/p/9156203.html
Copyright © 2011-2022 走看看