Python ddt+xlrd的使用

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

1、表格的后缀为.xls,表格中数值的类型必须是文本型,否则打印出来的数值后面多了.0,即1.0
在这里插入图片描述在这里插入图片描述

2、读取表格代码:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
import xlrd

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

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

方法一:

from ddt import ddt,data,unpack
import unittest
from readexcel import readxls

datatest=readxls()
@ddt
class BiJiao(unittest.TestCase):

    @data(*datatest)    #分离数据
    def test_bijiao(self,data):
        a,b=data  #将列表的值赋值给a,b
        print('a取值={0},b取值={1},两者相加={2}'.format(int(a),int(b),int(a)+int(b)))

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

方法二:

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:857662006 
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
from ddt import ddt,data,unpack
import unittest
from readexcel import readxls

datatest=readxls()
@ddt
class BiJiao(unittest.TestCase):
    @data(*datatest)    #分离数据
    @unpack
    def test_bijiao(self,a,b):
        print('a取值={0},b取值={1},两者相加={2}'.format(int(a),int(b),int(a)+int(b)))

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

方法三:

from ddt import ddt,data,unpack
import unittest
from readexcel import readxls

datatest=readxls()
@ddt
class BiJiao(unittest.TestCase):
    @data(*datatest)    #分离数据
    @unpack
    def test_bijiao(self,*data):
        a,b=data  #将列表的值赋值给a,b
        print('a取值={0},b取值={1},两者相加={2}'.format(int(a),int(b),int(a)+int(b)))

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

4、打印结果
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值