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、打印結果

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM