单元测试实例:
测试用代码块
class Demo():
def jiafa(self,a,b):
c=a+b
return c
def jianfa(self,a,b):
c=a-b
return c
def chengfa(self,a,b):
c=a*b
return c
def chufa(self,a,b):
c=a/b
return c
xml数据
<?xml version="1.0" encoding="utf-8" ?>
<cell1>
<A>
<noa>2</noa>
<nob>3</nob>
<noc>5</noc>
</A>
<A>
<noa>5</noa>
<nob>2</nob>
<noc>3</noc>
</A>
<A>
<noa>2</noa>
<nob>2</nob>
<noc>4</noc>
</A>
<A>
<noa>6</noa>
<nob>2</nob>
<noc>3</noc>
</A>
</cell1>
读取xml文件数据代码块
from xml.dom import minidom
class Mode():
def getxml(self,onelev,twolev,n):
root=minidom.parse("../data/dataxml.xml")
firstnode=root.getElementsByTagName(onelev)[n]
secendnode=firstnode.getElementsByTagName(twolev)[0].firstChild.data
return secendnode
xml单元测试模块
import unittest
from demo.rd01 import Demo
from readdata.Getxml import Mode
d=Demo()
m=Mode()
a1=m.getxml("A","noa",0)
a2=m.getxml("A","nob",0)
a3=m.getxml("A","noc",0)
a4=m.getxml("A","noa",1)
a5=m.getxml("A","nob",1)
a6=m.getxml("A","noc",1)
a7=m.getxml("A","noa",2)
a8=m.getxml("A","nob",2)
a9=m.getxml("A","noc",2)
a10=m.getxml("A","noa",3)
a11=m.getxml("A","nob",3)
a12=m.getxml("A","noc",3)
class Untest1(unittest.TestCase):
@classmethod
def setUpClass(cls) -> None:
print("no.1")
def setUp(self) -> None:
print("setup")
def test_01(self):
self.assertEqual(int(a3),d.jiafa(int(a1),int(a2)))
def test_02(self):
self.assertEqual(int(a6),d.jianfa(int(a4),int(a5)))
def test_03(self):
self.assertEqual(int(a9),d.chengfa(int(a7),int(a8)))
def test_04(self):
self.assertEqual(int(a12), d.chufa(int(a10), int(a11)))
@classmethod
def tearDownClass(cls) -> None:
print("no.2")
def tearDown(self) -> None:
print("teardown")
if __name__ == '__main__':
unittest.main()
xml文件单元测试报告生成
from test08.a0824 import Untest1
from common.HTMLTestRunner import HTMLTestRunner
import unittest
class Mak_ep():
def ex_rep(self):
suit=unittest.TestSuite()
lists = ["test_01", "test_02", "test_03","test_04"]
for i in lists:
suit.addTest(Untest1(i))
with open("../report.html","wb")as f :
HTMLTestRunner(stream=f,title="no.1",description="one",verbosity=2).run(suit)
t=Mak_ep()
t.ex_rep()
测试报告
csv数据
1,2,3
9,4,5
2,3,6
9,3,3
读取csv文件数据代码块
import csv
class GetCsv():
def getcsv(self):
lis=[]
c=csv.reader(open("../data/datacsv.csv"))
for i in c:
lis.append(i)
return lis
csv单元测试模块
from demo.rd01 import Demo
from readdata.Getcsv import GetCsv
import unittest
d=Demo()
g=GetCsv()
g.getcsv()
r=g.getcsv()[0]
r1=g.getcsv()[1]
r2=g.getcsv()[2]
r3=g.getcsv()[3]
class UnTest1(unittest.TestCase):
def setUp(self) -> None:
print("redeay")
def test_01(self):
self.assertEqual(int(r[2]),d.jiafa(int(r[0]),int(r[1])))
def test_02(self):
self.assertEqual(int(r1[2]),d.jianfa(int(r1[0]),int(r1[1])))
def test_03(self):
self.assertEqual(int(r2[2]),d.chengfa(int(r2[0]),int(r2[1])))
def test_04(self):
self.assertEqual(int(r3[2]),d.chufa(int(r3[0]),int(r3[1])))
def tearDown(self) -> None:
print("end off")
if __name__ == '__main__':
unittest.main()
csv文件单元测试报告生成
from test08.a08241 import UnTest1 #导入测试用例模块
from common.HTMLTestRunner import HTMLTestRunner#导入测试报告模块(第三方模块)
import unittest #导入单元测试模块
class Mak_ep(): #设置类处理测试用例
def ex_rep(self):
suite=unittest.TestSuite() #测试套件
lis=["test_01","test_02","test_03","test_04"]
for i in lis:
suite.addTest(UnTest1(i))
with open("../report1.html","wb") as f: #新建文件,设置接受点f并打印生成报告
HTMLTestRunner( stream=f, title="单元测试", description="测试一期", verbosity=2 ).run(suite)
t=Mak_ep() #实例化类
t.ex_rep() #调用类方法
测试报告