算了,直接上代码吧
不想多逼逼了
模块1
模块2
import unittest
from danyuantest.mathMATHOD import Mathmethod#之前包名和模块名重复了,然后运行就报错,看来还是得多练,要不,真不知道坑在哪儿 from包名.模块名 import 类名
class Test(unittest.TestCase):#继承unitest里面的TestCase
# 写用例的时候,每一条用例都是一个类函数
# 类函数的命名要以test开头才会被这个框架所识别
# 例如 def test_add(self)
def init(self,a,b,expected,desccipe,methodName):
super(Test,self).init(methodName)
self.a=a
self.b=b
self.expected=expected
self.desccipe=desccipe
def test_add(self):
t=Mathmethod()
res =t.add_two_zero(self.a,self.b)
try:
self.assertEqual(self.expected,res)#前面放期望值,后面放实际结果
except AssertionError as e:
print("出错了,错误是{}".format(e))
raise e #如果这里不抛出错误,就会提示所有的都通过了,提示的时候呢,也要注意一下缩进,是在except里面的
模块3
#首先,要安装openpyxl 命令是 pip install openpyxl
切记文件的后缀要是 .xlsx 一定要自己copy过来
from openpyxl import load_workbook
class ReadExcel():
def readexcel(self):
# 打开excel
wb = load_workbook(“readfromexcel.xlsx”)#返回的是一个工作簿
# 定位表单
# sheet = wb.get_sheet_by_name(“name”) 这个看源码,说是已经过时了 @deprecated(“Use wb[sheetname]”)
sheet = wb[“name”]
# 定位单元格
# res=sheet.cell(3,3).value#cell是单元格的意思 cell(行数,列数)
# print(res)
# 修改值,写入之前一定要把文件关闭
# sheet.cell(3,3).value=“change”#就是个赋值语句
# 然后保存
# wb.save(“readfromexcel.xlsx”)
testdata =[]
for i in range(2,6):
sub_data=[]
for j in range(1,6):
# print(sheet.cell(i,j).value)#哎呀,这个.value不要忘了啊
sub_data.append(sheet.cell(i,j).value)
testdata.append(sub_data)
return testdata
模块4
import HTMLTestRunnerNew
import unittest
from danyuantest.UNItest import Test
from danyuantest import UNItest
from danyuantest.readdatafromexcel1 import ReadExcel
test_data=ReadExcel().readexcel()
print(test_data) 麻蛋的,return用错了,导致我找了好久,吃一堑长一智吧
suite = unittest.TestSuite()
for item in test_data:
# print(item)
suite.addTest(Test(item[2],item[3],item[4],item[1],“test_add”))
file = open(“test_result.html”,“wb”)
runner =HTMLTestRunnerNew.HTMLTestRunner(file, verbosity=2,title=“测试报告”,description=“first”,tester=“黄三甲”)
loader = unittest.TestLoader()#
suite.addTest(loader.loadTestsFromModule(UNItest))#直接加载模块里面的所有用例
runner.run(suite)
但是吧,这里面有个问题,测试报告不太好看,我看看要怎么优化一下,算了,今天先这样吧,去吃饭了