Python ddt+xlrd的使用

做了个数据驱动ddt和表格结合使用的练习,如下:

1、表格的后缀为.xls,表格中数值的类型必须是文本型,否则打印出来的数值后面多了.0,即1.0

2、读取表格代码:

 1 import xlrd
 2 
 3 def readxls():
 4     xl=xlrd.open_workbook('testdata.xls')  #打开Excel表格
 5     sheet1 = xl.sheet_by_name('Sheet1')  #指定表1
 6     listdata= []     #定义空列表,用来存放读取出来的每行数据
 7     for i in range(1, 5):  #循环1~5(不包含5),即循环4次
 8         j = sheet1.row_values(i, 0, 2)  #读取第i行的第0~2列(不含第2列)
 9         listdata.append(j) #读一行追加一行存入listdata中
10     # print(listdata)
11     return listdata  #返回列表

3、将从表格读出来的数据与ddt结合使用,代码:

方法一:

 1 from ddt import ddt,data,unpack
 2 import unittest
 3 from readexcel import readxls
 4 
 5 datatest=readxls()
 6 @ddt
 7 class BiJiao(unittest.TestCase):
 8 
 9     @data(*datatest)    #分离数据
10     def test_bijiao(self,data):
11         a,b=data  #将列表的值赋值给a,b
12         print('a取值={0},b取值={1},两者相加={2}'.format(int(a),int(b),int(a)+int(b)))
13 
14 if __name__=='__main__':
15     unittest.main()

方法二:

 1 from ddt import ddt,data,unpack
 2 import unittest
 3 from readexcel import readxls
 4 
 5 datatest=readxls()
 6 @ddt
 7 class BiJiao(unittest.TestCase):
 8     @data(*datatest)    #分离数据
 9     @unpack
10     def test_bijiao(self,a,b):
11         print('a取值={0},b取值={1},两者相加={2}'.format(int(a),int(b),int(a)+int(b)))
12 
13 if __name__=='__main__':
14     unittest.main()

方法三:

 1 from ddt import ddt,data,unpack
 2 import unittest
 3 from readexcel import readxls
 4 
 5 datatest=readxls()
 6 @ddt
 7 class BiJiao(unittest.TestCase):
 8     @data(*datatest)    #分离数据
 9     @unpack
10     def test_bijiao(self,*data):
11         a,b=data  #将列表的值赋值给a,b
12         print('a取值={0},b取值={1},两者相加={2}'.format(int(a),int(b),int(a)+int(b)))
13 
14 if __name__=='__main__':
15     unittest.main()

4、打印结果

原文地址:https://www.cnblogs.com/mumunansheng/p/10309630.html