unittest的工作原理:一下例子简单的描述了整个过程
def calc(a,b):
return a//b
import unittest,HTMLTestRunner
import BeautifulReport
from unittest import TestCase
class MyTest(TestCase):#继承TestCase
@classmethod#类方法
def setUpClass(cls):#所有用例执行之前会执行一次,多用于数据库连接
print('运行setUpClass')
@classmethod
def tearDownClass(cls):#所有用例执行之后会执行一次,多用于数据库连接
print('运行setUpClass')
def setUp(self):#每条用例运行之前都会执行
print('运行setUp')
def tearDown(self):#每条用例运行之后都会执行
print('tearDown')
def test_calc1(self):
#正常的用例 加上下面注释就是用例描述
'''这是测试出发计算器正常的'''
print('第一条用例')
res=calc(4,2)
self.assertEqual(2,res,'预期结果和实际结果不符合 预期结果 2 世界结果为%s'%res)#后面提示可写可不写
def test_calc2(self):
'''这是测试出发计算器不正常的'''
print('第二条用例')
res=calc(5,1)
self.assertEqual(1,res)#断言
def test_a(self):
'''这是王艳辉谈恋爱的'''
print('wangyanghui')
def test_b(self):
'''张向欢胖胖的'''
print('zhangxianghuan') # unittest.main()#可以帮运行当前文件里面的所有测试用例 测试用例的方法名必须以test开头,不然不能测出来
test_sutie=unittest.TestSuite()#定义一个测试集合,
test_sutie.addTest(MyTest('test_a'))#把类里的一个用例加入到集合
test_sutie.addTest(unittest.makeSuite(MyTest))#把类里面的所有的用例都加到集合里
runtest=unittest.TextTestRunner()
runtest.run(test_sutie)
#以上是测试用例的基本流程 #不好看的报告
f=open('report.html','wb')#可以在网页上直接浏览的报告
runner=HTMLTestRunner.HTMLTestRunner(stream=f,title='XXX测试报告',description='这是XXX测试的')
#加上'''xxx'''是报告里面加注释的
runner.run(test_sutie)
f.close() #好看的报告
report=BeautifulReport.BeautifulReport(test_sutie)
report.report(description='XXX测试',filename='report2.html')
print(report.failure_count)#失败的条数
print(report.success_count)#成功的条数