首页 > 编程语言 > 详细

Python 数据驱动工具:DDT

时间:2020-11-25 15:25:30      阅读:21      评论:0      收藏:0      [点我收藏+]

背景

 

python 的unittest 没有自带数据驱动功能。

 

所以如果使用unittest,同时又想使用数据驱动,那么就可以使用DDT来完成。

 

DDT是 “Data-Driven Tests”的缩写。

 

参考资料:http://ddt.readthedocs.io/en/latest/

 

 

使用方法

 

dd.ddt:

 

装饰类,也就是继承自TestCase的类。

 

ddt.data:

 

装饰测试方法。参数是一系列的值。

 

ddt.file_data:

 

装饰测试方法。参数是文件名。文件可以是json 或者 yaml类型。

 

注意,如果文件以”.yml”或者”.yaml”结尾,ddt会作为yaml类型处理,其他所有文件都会作为json文件处理

 

如果文件中是列表,每个列表的值会作为测试用例参数,同时作为测试用例方法名后缀显示。

 

如果文件中是字典,字典的key会作为测试用例方法的后缀显示,字典的值会作为测试用例参数。

 

ddt.unpack:

 

传递的是复杂的数据结构时使用。比如使用元组或者列表,添加unpack之后,ddt会自动把元组或者列表对应到多个参数上。字典也可以这样处理。参见下面的示例2.

 

测试用例方法名生成规则

 

使用ddt后,会产生一个新的测试用例方法名:之前的测试用例方法名_ordinal_data

 

之前的测试用例方法名:即定义的测试用例方法名。比如def test_large(),这里就是test_large

 

ordinal:整数,从1开始递加。

 

data:如果传递过来的数据存在__name__属性,则这里就是该数据的__name__值。如果未定义__name__属性,ddt会尽量将传递过来的数据转化为python标识符,作为data显示。比如(3,2)就转化为3_2。需要注意的是,如果数据是字典,则这里就是字典的key。

 

使用示例

 

1. data直接放入数值

 

需要导入ddt包,然后再TestCase类上采用@ddt进行装饰,测试方法上装饰@data()。

 

data可以是数值,也可以是字符串。

import ddt
import unittest

@ddt.ddt
class TestCase(unittest.TestCase):
    def setUp(self):
        print(‘开始测试‘)

  
  @ddt.data(1,2,3,4,5,6)
    def test_case_04(self,value):
        print("value1  is"+str(value))


if __name__=="__main__":
    unittest.main()

 

Python 数据驱动工具:DDT

原文:https://www.cnblogs.com/Winnie-s/p/14035154.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!