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 如果正常的就会返回成功的如果不是正常的就会返回失败


  • 相关阅读:
    【Android Developers Training】 73. 布局变化的动画
    【Android Developers Training】 72. 缩放一个视图
    【Android Developers Training】 71. 显示翻牌动画
    svn更改地址怎么办
    python学习手册
    failed to bind pixmap to texture
    Ubuntu 12.04安装Google Chrome
    svn update 时总是提示 Password for '默认密钥' GNOME keyring: 输入密码
    重设SVN 的GNOME keyring [(null)] 的密码
    Nginx + uWSGI + web.py 搭建示例
  • 原文地址:https://www.cnblogs.com/weilemeizi/p/11973180.html
Copyright © 2011-2022 走看看