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

  • 相关阅读:
    What is systemvolumeinformation? delete it?
    What is "found.000" ? How to deal with it?
    install Mac OS on Vmware
    字符串数组全排列
    Hadoop开发相关问题
    String直接赋值和使用new的区别
    输入两个递增排序的链表,合并这两个链表并使新链表中的结点仍然是按照递增排序的
    括号匹配问题
    预编译语句
    两个有序单链表合并成一个有序单链表的java实现
  • 原文地址:https://www.cnblogs.com/mumunansheng/p/10309630.html
Copyright © 2020-2023  润新知