python 装饰器(实现dataprovider)
2018-02-01 18:27
183 查看
接触装饰器,是因为在使用unittest测试时,想要看起来更简洁的传递数据,看了下Java的TestNG有DataProvider这个东东,python里第三方库也有实现的。但还是满足不了自己的要求,基础的东西还是学一下更好。
我的设想:
测试用例的数据都放在一个test_cases_data的dict中(test_case_name为key),通过dataprovider根据test_case_name获取其对应的测试数据,并传递给test method,如下:
献出我的data_provider文件:
强烈推荐一篇很好的文章&参考:
http://python.jobbole.com/85056/
https://pypi.python.org/pypi/unittest-data-provider/
我的设想:
测试用例的数据都放在一个test_cases_data的dict中(test_case_name为key),通过dataprovider根据test_case_name获取其对应的测试数据,并传递给test method,如下:
@data_provider(['login_success']) def test_login_success(self, user, password, verifycode): ......
献出我的data_provider文件:
import data.config def data_provider(name_list): """第一个自己的decorator""" test_cases_data = get_data_by_name(name_list) def case_decorator(func): def repl(self, **kwargs): for test_case_data in test_cases_data: func(self, **test_case_data) return repl return case_decorator def get_data_by_name(name_list): test_cases_data = data.config.get_test_cases_data() case_data = [] for name in name_list: case_data.append(test_cases_data[name]) return case_data
强烈推荐一篇很好的文章&参考:
http://python.jobbole.com/85056/
https://pypi.python.org/pypi/unittest-data-provider/
相关文章推荐
- 【DataStructure In Python】Python实现各种排序算法
- 【Python】装饰器实现日志记录
- python 多个装饰器组合应用,实现面向切面之AOP编程
- 在Python dataframe中出生日期转化为年龄的实现方法
- jface databinding:label provider 实现多列表格(Table)数据绑定的两个途径
- $python用装饰器实现一个计时器
- python重试装饰器的简单实现
- 用于MongoDB的WCF Data Services Provider的实现尝试
- 通过 Python 装饰器实现DRY(不重复代码)原则
- Head First 设计模式——装饰器(Decorator Pattern)——Python实现
- ObjectDataProvider实现Add
- 用ObjectDataProvider绑定方法,用IValueConverter实现数据类型转换,重载ValidationRule实现数据验证,BindsDirectlyToSource等
- python之DataFrame实现excel合并单元格
- Python 装饰器实现DRY(不重复代码)原则
- Python 装饰器实现样例
- 《Python - 实现一个简单的装饰器》--- 输出程序运行时间
- python用装饰器实现缓存函数执行结果
- python学习系列之python装饰器基础(3)---装饰器实现用户登录验证
- python实现在pandas.DataFrame添加一行
- python 给DataFrame增加index行名和columns列名的实现方法