美文网首页
(三)unittest-ddt

(三)unittest-ddt

作者: Sandra_liu | 来源:发表于2021-07-12 18:45 被阅读0次
    #!/usr/bin/env python
    # coding:utf-8
    #@Time : 2021/7/13 10:53
    #@Author: sandra
    #@File : test_base_ddt.py
    import os
    import unittest
    from ddt import ddt, data, unpack, file_data
    
    '''
    #ddt 用来管理测试数据,提高代码复用率。
    
    #四种模式:1、引入装饰器@ddt; 
    2、导入数据@ddt; 
    3、拆分数据@unpack;
    4、引入外部数据@file_data。
    '''
    
    '''
    1、读取元组数据
    '''
    @ddt
    class Testtumple(unittest.TestCase):
        '''单组元素'''
        @data(2,2,3)
        def test_001(self,value):
            print(value)
    
        '''多组元素未拆分'''
        @data((1,3,5),(2,4,6))
        def test_002(self,value):
            print(value)
    
        '''多组元素已拆分'''
        @data((1,2,8),(3,6,7))
        @unpack
        def test_003(self,value1,value2,value3):
            print(value1,value2,value3)
    if __name__ == '__main__':
        unittest.main()
    
    
    '''
    2、读取列表数据
    '''
    @ddt
    class Testlist(unittest.TestCase):
        '''单组元素-列表-未拆分'''
        @data([1,1,1],[2,2,2])
        def test_001(self,value):
            print(value)
    
        '''单组元素-列表-已拆分'''
        @data([3, 2, 1], [1, 2, 3])
        @unpack
        def test_002(self, value1,value2,value3):
            print(value1,value2,value3)
    
    
        '''单组元素-列表(字典)-未拆分'''
        @data([{'a':1,'b':2},{'c':3,'d':4}])
        def test_003(self,value):
            print(value)
    
        '''单组元素-列表(字典)-已拆分'''
        @data([{'a':'hi','b':'sandra'},{'c':'ho','d':'laoyang'}])
        @unpack
        def test_004(self,value1,value2):
            print(value1,value2)
    
    
    if __name__ == '__main__':
        unittest.main()
    
    '''
    3、读取字典数据
    '''
    @ddt
    class Testlist(unittest.TestCase):
        '''单组元素-字典-未拆分'''
        @data({'a':1, 'b':2},{'c':3, 'd':4})
        def test_001(self,value):
            print(value)
    
        '''单组元素-字典-已拆分'''
        @data({'a':1, 'b':2},{'a':3, 'b':4})
        @unpack
        def test_002(self, a,b):
            print(a,b)
    
        '''单组元素-字典嵌套-未拆分'''
    
        @data({'a': 1, 'b': 2}, {'c': 3, 'd': {'e':5}})
        def test_003(self, value):
            print(value)
    
        '''单组元素-字典嵌套-已拆分'''
    
        @data({'a': 1, 'b': 2}, {'a': 3, 'b': {'e':6}})
        @unpack
        def test_004(self, a, b):
            print(a, b)
    
    
    if __name__ == '__main__':
        unittest.main()
    
    '''
    4、读取文件数据-csv/txt/yaml
    '''
    @ddt
    class Testlist(unittest.TestCase):
        '''单组元素-列表-未拆分-参数'''
        m = [{'a':1, 'b':2},{'c':3, 'd':4}]
        @data(*m)
        def test_001(self,value):
            print(value)
            print(os.getcwd()+'\\test_base_ddt.txt')
    
    
        '''单组元素-列表-未拆分-txt'''
    
        @file_data("test_base_ddt.txt")
        def test_003(self, a,b):
            print(a,b)
    
    
    
        '''单组元素-列表-未拆分-json'''
    
        @file_data("test_base_ddt.json")
        def test_004(self, a,b):
            print(a,b)
    
    
    
        '''单组元素-列表-未拆分-yaml'''
    
        @file_data("test_base_ddt.yaml")
        def test_005(self, a,b):
            print(a,b)
    
    
    
        '''单组元素-列表-已拆分-参数'''
        m = [{'a': 1, 'b': 2}, {'a': 3, 'b': 4}]
        @data(*m)
        @unpack
        def test_002(self, a,b):
            print(a,b)
    
    
    
    
    if __name__ == '__main__':
        unittest.main()
    
    json:
    [{
        "a": 1,
        "b": 2
    }, {
        "a": 3,
        "b": 4
    }]
    
    yaml:
    - a: 1
      b: 2
    - a: 3
      b: 4
    

    参考:https://www.jianshu.com/p/78998bcf3e05

    相关文章

      网友评论

          本文标题:(三)unittest-ddt

          本文链接:https://www.haomeiwen.com/subject/mbhwultx.html