接着上一篇文章写,test_01先加上数据驱动
import unittest
import ddt
import ParaseExcel
@ddt.ddt
class BusinessTest(unittest.TestCase):
filename = "测试数据.xlsx"
sheetname = "Sheet1"
pe = ParaseExcel.ParaseExcel(filename, sheetname)
@classmethod
def setUpClass(cls):
pass
@ddt.data(*pe.getDataFromSheet())
def test_case_01(self, data):
num, name, age =tuple(data)
print("序号:%s ,姓名:%s, 年龄:%s" % (num, name, age))
def test_case_02(self):
print("测试李四")
def test_case_03(self):
print("测试王五")
@classmethod
def tearDownClass(cls):
print("所有用例结束执行")
if __name__ =="__main__":
unittest.main()
表格内容:
执行结果:
现在只执行test_case_01用例
我们试下上一篇讲的方法
if __name__ =="__main__":
testcase = ['BusinessTest.test_case_01']
unittest.main(defaultTest=testcase)
查看运行结果报错,原因是属性错误,BusinessTest类没有test_case_01属性。查看源码发现报错的地方了(图2)。
那我们要思考test_case_01为啥加了数据驱动就不是类的属性了呢?或者是不是名字不对,于是我使用unittest.main()执行,并在main.py文件中打印测试名。
现在我们发现果然是测试用例名不对,需要在test_case_01后面加上数据。我们加上再试下
if __name__ =="__main__":
testcase = ['BusinessTest.test_case_01_1__1___小明___40_']
unittest.main(defaultTest=testcase)
查看运行结果,运行成功。但是测试用例加上数据驱动,uniitest变得不那么灵活了。下面有时间我们再研究下pytest的冒烟测试。