unittest单元测试笔记

单元测试

  unittest单元测试是基于java的JUnit思想框架开发出来的测试框架

import  unittest
import HTMLTestRunner
class Mytest1(unittest.TestCase):
    def test_a(self):#用例必须已test开头
        self.assertEqual(1,1,msg='错误提示信息,如果校验失败,出现这个')
        print('a')
    def test_c(self):
        self.assertEqual(1,2,msg='失败')#如果校验结果不正确,不会执行后面的代码
        print('c')#这条代码不会执行
    def test_z(self):#函数执行优先级:按照函数的首字母顺序依次执行A-Z-a-z
        self.assertEqual(4,4)
        print('z')
    def test_G(self):
        self.assertEqual(3,3)
        print('G')
#unittest.main()#运行所有函数
#unittest.defaultTestLoader.discover()#可以指定一个文件夹,在指定目录下找到测试用例
f = open('a.html','wb')#创建文件
runner = HTMLTestRunner.HTMLTestRunner(f,title='rainbol_test',description='这是一个接口测试用例')#实例化用例报告,并传入文件,title标题,description描述
suite = unittest.makeSuite(Mytest1)#把要生成报告的类变成一个测试集合,
runner.run(suite)#运行测试用例


import BeautifulReport
#美化报告
class Mytest2(unittest.TestCase):
    def test_a(self):
        '''test_a用例'''#添加用例描述,可以在测试报告中显示
        self.assertEqual(1,1,msg='错误提示信息,如果校验失败,出现这个')
    def test_c(self):
        '''test_c用例'''
        self.assertEqual(1,2,msg='失败')
        print('c')
    def test_z(self):
        '''test_z用例'''
        self.assertEqual(4,4)
        print('z')


new_suite= unittest.makeSuite(Mytest2)
report = BeautifulReport.BeautifulReport(new_suite)
report.report(filename='new_report.html',description='这个是新接口测试报告')


class Mytest3(unittest.TestCase):
    def setUp(self):#每条用例前执行,比如检测接口连接是否正常
        print('setUp')
    def tearDown(self):#每条用例后执行,比如清理缓存,cookie,redis的信息
        print('tearDown')
@classmethod  #注意加入装饰器
def setUpClass(cls):#这个类里面的用例先执行,比如连接数据库 print('setUpClass') @classmethod  #注意加入装饰器 def tearDownClass(cls):#这个类里面的用例最后执行,比如关闭数据库 print('tearDownClass')
  def test_c(self): '''test_c用例''' self.assertEqual(1, 2, msg='失败') print('c') def test_z(self): '''test_z用例''' self.assertEqual(4,4) print('z') unittest.main() #执行顺序 setUpClass→setUp→test_c→tearDown→setUp→test_z→tearDown→tearDownClass

 

 

版权声明:本文原创发表于 博客园,作者为 RainBol 本文欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则视为侵权。

转载于:https://www.cnblogs.com/RainBol/p/10055800.html