#!/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
网友评论