zoukankan      html  css  js  c++  java
  • unittest详解(七) 自动生成测试报告

    用例执行完成后,执行结果默认是输出在屏幕上,其实我们可以把结果输出到一个文件中,形成测试报告。

    unittest自带的测试报告是文本形式的,如下代码:

    import unittest
    
    if __name__ == "__main__":
        # 测试用例目录
        test_dir = r"D:GitTest_Framework	est_case"
        # 加载测试用例
        discover = unittest.defaultTestLoader.discover(test_dir, 'test*.py')
        # 测试报告路径
        report_path = r"D:GitTest_Framework
    eport
    eport.text"
        with open(report_path,"a") as report:
            runner = unittest.TextTestRunner(stream=report,verbosity=2)
            runner.run(discover)

    生成的txt测试报告如下:

    这种TXT文件测试报告不能直观地展示用例执行情况,引入第三方模块HTMLTestRunner,可以展示一份优美的html格式的测试报告。

    下面我们就来介绍下HTMLTestRunner模块

    HTMLTestRunner模块不能通过pip安装,必须先下载下来下载地址:http://tungwaiyip.info/software/HTMLTestRunner.html

    直接右键另存为就行了,下载完成后放到python安装目录下的../Python36Lib

    因为HTMLTestRunner模块是基于Python2开发的,目前停止更新了,在Python3上运行会报错。为了使其支持Python3环境,需要对其中的部分内容进行修改:

    第94行,将import StringIO修改成import io

    第539行,将self.outputBuffer = StringIO.StringIO()修改成self.outputBuffer= io.StringIO()

    第631行,将print >> sys.stderr, ‘ Time Elapsed: %s‘ %(self.stopTime-self.startTime)修改成print(sys.stderr, ‘ TimeElapsed: %s‘ % (self.stopTime-self.startTime))

    第642行,将if not rmap.has_key(cls):修改成if notcls in rmap:

    第766行,将uo = o.decode(‘latin-1‘)修改成uo = e

    第775行,将ue = e.decode(‘latin-1‘)修改成ue = e

    修改完成后保存。

    现在我们就可以生成一份优美的测试报告了

    代码:

    import unittest
    from HTMLTestRunner import HTMLTestRunner
    
    if __name__ == "__main__":
        # 测试用例目录
        test_dir = r"D:GitTest_Framework	est_case"
        # 加载测试用例
        discover = unittest.defaultTestLoader.discover(test_dir, 'test*.py')
        # 测试报告路径
        report_path = r"D:GitTest_Framework
    eport
    eport.html"
        with open(report_path,"wb") as report:
            runner = HTMLTestRunner(stream = report,
                                    title = "测试报告",
                                    description = "系统登录测试用例执行")
            runner.run(discover)

  • 相关阅读:
    吉特日化MES-电子批记录普通样本
    吉特日化配料系统-关于25针串口转接
    吉特仓储管理系统--元宵送开发者一份礼物-开源2018年源码
    吉特日化MES-日化生产称料基本步骤
    吉特日化MES-日化行业原料仓库所见问题汇总
    网易数据中台建设实践
    【杭研大咖说】温正湖:6年,从不会写SQL到数据库专家
    从自动化到智能化,网易杭研的AIOps探索与实践
    特征选择之经典三刀
    【杭研大咖说】王新勇:死磕云原生的“懒人”
  • 原文地址:https://www.cnblogs.com/eastonliu/p/9147075.html
Copyright © 2011-2022 走看看