第十一天 unittest参数化模块

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)#成功的条数

 

posted @ 2018-08-15 17:57  魔凌峰  阅读(137)  评论(0)    收藏  举报