Python单元测试生成测试报告以及用XML导入数据
1.需要测试的后台代码
class CalcClass():
def jia(self,a,b):
c = a+b
return c
def jian(self,a,b):
c = a-b
return c
if name == ‘main’:
c = CalcClass()
c.jian(3,4)
print(c.jia(3,4))
2.创建一个测试模块
#导入后台开发的类
from kaifa.unittese import CalcClass
#导入unittest模块
import unittest
#创建一个类
class Calc_testcase(unittest.TestCase):
def setUp(self) -> None: #测试用例方法执行前的操作
print(“start”)
def test1(self): #测试用例
c = CalcClass()
a = c.jia(1,3)
self.assertEqual(a,4) #预期结果
return a
def test2(self):
c = CalcClass()
a = c.jian(3,1)
self.assertEqual(a,2)#预期结果
return a
def tearDown(self) -> None:#测试用例方法执行后的操作
print(‘end’)
if name ==“main”:
unittest.main() #调用测试用例中以test开头的方法
运行结果:
3.紧接着就可以生成测试报告(需要导入第三方的一个报告生成插件)
from ceshi.unittese1 import Calc_testcase #导入上一步测试的代码
from thirdparty.HTMLTestRunner import HTMLTestRunner #导入一个生成报告插件
import unittest #导入unittest
class UnistSuit():
def show(self):
su = unittest.TestSuite()#创建测试套组件
list_cases = [‘test1’,‘test2’]
for list_case in list_cases:
su.addTest(Calc_testcase(list_case))
with open("…/report.html",‘wb’) as f:
HTMLTestRunner(
stream=f,
verbosity=2,
title=‘加法运算’,
description=‘加法的运算’
).run(su)
if name == ‘main’:
UnistSuit().show()
测试报告:
4.在第三方插件里面创建一个XML文件写一个XML例子
5.读取Xml例子里的数字
from xml.dom import minidom
class Readxml():
def read_xml(self,filepath,fileone,filetwo):
root = minidom.parse(filepath)#文件路径
firstnode = root.getElementsByTagName(fileone)[0]
secondnode = firstnode.getElementsByTagName(filetwo)[0].firstChild.data
return secondnode
r = Readxml()
aaa = r.read_xml(’…/thirdparty/textxml’,‘add’,‘add1’)
bbb = r.read_xml(’…/thirdparty/textxml’,‘add’,‘add2’)
ccc = r.read_xml(’…/thirdparty/textxml’,‘add’,‘except’)
print(aaa,bbb,ccc)
标题6.讲读取XML例子里的数字传入到测试模块中
#导入后台开发的类
from kaifa.unittese import CalcClass
#导入unittest模块
import unittest
#导入读取的XML
from read.read1 import Readxml
r = Readxml()
aaa = r.read_xml(r’C:\Users\apple\Desktop\untitled\untitled\untitled\thirdparty\textxml’,‘add’,‘add1’)
bbb = r.read_xml(r’C:\Users\apple\Desktop\untitled\untitled\untitled\thirdparty\textxml’,‘add’,‘add2’)
ccc = r.read_xml(r’C:\Users\apple\Desktop\untitled\untitled\untitled\thirdparty\textxml’,‘add’,‘except’)
class Calc_testcase(unittest.TestCase):
def setUp(self) -> None: #测试用例方法执行前的操作
print(“start”)
def test1(self): #测试用例
c = CalcClass()
a = c.jia(int(aaa),int(bbb))
self.assertEqual(a,int(ccc)) #预期结果
return a
def test2(self):
c = CalcClass()
a = c.jian(3,1)
self.assertEqual(a,2)#预期结果
return a
def tearDown(self) -> None:#测试用例方法执行后的操作
print(‘end’)
if name ==“main”:
unittest.main() #调用测试用例中以test开头的方法
运行结果: