zoukankan      html  css  js  c++  java
  • 整理unittest框架-2019-12-2

    #自测的过程就是单元测试
    #自己写一些测试的代码,来测试自己写的代码功能看看有没有实现
    import unittest
    def add(a,b):
    return a+b
    class AddTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
    print('setUPclass')
    @classmethod
    def setUp(self):#执行前都i要执行他,每条用例
    print('setUp')
    def tearDown(self):#每条用例执行之后都要执行他
    print('tearDown')
    def test_ces(self):
    result=add(1,1)
    self.assertAlmostEqual(2,result)
    def test_cesr(self):
    result=add(1,1)
    self.assertAlmostEqual(1,result,'结果计算错误')
    self.assertIn(1,[1,2,3,4])#判断是否再找个数组里
    # self.assertFalse()
    # self.assertTrue()#assert是断言校验结果对不对的
    #用例运行顺序按照函数妹子开头来的

    #为什么能self.因为父类里面有继承了testcase
    # unittest.main()#他会识别当前python文件所有测试用例帮你运行
    #出现in就不要写这行代码
    #产生测试报告不要用这种方法运行不加unittest.main()
    #如果选了点右上角run...运行
    #用它识别所有的测试用例自动识别出来


    测试报告

     把HTMLrunner放到这里

    运行这样运行

    #test case
    #testsuite#用例集合
    #testrunner#运行测试用例
    #testloader#查找测试用例
    import unittest,HTMLTestRunner
    def add(a,b):
    return a+b
    class AddTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
    print('setUPclass')
    @classmethod
    def setUp(self):#执行前都i要执行他,每条用例
    print('setUp')
    def tearDown(self):#每条用例执行之后都要执行他
    print('tearDown')
    def test_ces(self):
    result=add(1,1)
    self.assertAlmostEqual(2,result)
    def test_cesr(self):
    result=add(1,1)
    self.assertAlmostEqual(1,result,'结果计算错误')
    self.assertIn(1,[1,2,3,4])#判断是否再找个数组里
    file=open('report.html','wb')#放到那个文件
    runner=HTMLTestRunner.HTMLTestRunner(file,title='测试报告')#标题
    test_suite=unittest.makeSuite(AddTest)#make方法找到用例变成测试集合,自动把test开头加进去
    runner.run(test_suite)#runner运行找个测试用例的集合,死用法
    file.close()
    结果可以复制路径和用浏览器打开查看

     第二种产生测试报告方法

    #test case
    #testsuite#用例集合
    #testrunner#运行测试用例
    #testloader#查找测试用例
    import unittest,HTMLTestRunner,BeautifulReport
    def add(a,b):
    return a+b
    class AddTest(unittest.TestCase):
    @classmethod
    def setUpClass(cls):
    print('setUPclass')
    @classmethod
    def setUp(self):#执行前都i要执行他,每条用例
    print('setUp')
    def tearDown(self):#每条用例执行之后都要执行他
    print('tearDown')
    def test_ces(self):
    result=add(1,1)
    self.assertAlmostEqual(2,result)
    def test_cesr(self):
    result=add(1,1)
    self.assertAlmostEqual(1,result,'结果计算错误')
    self.assertIn(1,[1,2,3,4])#判断是否再找个数组里
    test_suite=unittest.makeSuite(AddTest)#make方法找到用例变成测试集合,自动把test开头加进去
    report=BeautifulReport.BeautifulReport(test_suite)
    report.report(filename='bf_report.html',description='测试报告')

    report.report(filename='bf_report.html',description='测试报告',log_path='C:/Users/v-dongchunguang/Desktop')
    log_path路径写哪里测试报告产生再那里


    如果想要检验一个参数化的测试报告接口的应该这样写
    import parameterized,unittest,BeautifulReport
    #实现数据驱动 十条用例就说十条数据
    #代码驱动 用例全都是你写代码实现的
    #关键字驱动
    data=[['admin','123456',True,'正常登录'],
    ['admin','1122',True,'异常登录'],['admin','1111',False,'黑名单用户登录']]
    def Login(user,password):
    if user=='admin'and password=='123456':
    return True
    return False
    class LoginTest(unittest.TestCase):
    @parameterized.parameterized.expand(data)
    def test_Login(self,user,password,expect,desc):
    '''登录用例'''
    self._testMethodDoc=desc
    result=Login(user,password)
    self.assertEqual(expect,result)#判断
    bf=BeautifulReport.BeautifulReport(unittest.makeSuite(LoginTest))
    bf.report(filename='11-17测试报告',description='接口测试报告')


    返回的true和false 如果正常的就会返回成功的如果不是正常的就会返回失败


  • 相关阅读:
    Collections接口下的Comparetor类和Comparable接口排序
    MySQL(二)、数据库数据类型
    MySQL(表设置、详细说明查询操作)、JDBC基础
    IO流:对象流、Poperties类
    IO流:System.in、SequenceInputStream合并流、内存输入输出流、数据流
    IO流:文件对象、字符流、字节流、缓冲流
    泛型
    集合
    String常用方法、toString()、equals()、compareTo()
    继承、抽象、接口、封装
  • 原文地址:https://www.cnblogs.com/weilemeizi/p/11973180.html
Copyright © 2011-2022 走看看