(三)unittest-ddt

2021-07-12  本文已影响0人  Sandra_liu
#!/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

上一篇 下一篇

猜你喜欢

热点阅读