• 使用 HTMLTestRunner 模块生成HTML格式的测试报告文件


    1.下载HTMLTestRunner.py

    HTMLTestRunner 是 Python 标准库的 unittest 模块的一个扩展。它生成易于使用的 HTML 测试报告。HTMLTestRunner 是在 BSD 许可证下发布。
    (1)下载 地址:http://tungwaiyip.info/software/HTMLTestRunner.html   -->

    (2)点击HTMLTestRunner.py进入目标文件后,右键另存于即可。

    (3)python3中用HTMLTestRunner.py报ImportError: No module named ‘StringIO‘的解决方法:

      

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

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

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

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

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

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

    (4)修改后下载链接: https://pan.baidu.com/s/13vLRRq9IB2B2y-OwTWrepg 提取码: 89pd

    Windows :将下载的文件放入Python34的安装目录...Python34Lib 目录下

    2.导入 htmltestrunner 模块包

    1 from HTMLTestRunner import HTMLTestRunner
    2 import unittest
    3 from time import strftime 或者import time,datetime
    4 import os
    5 from email.mime.text import MIMEText
    6 
    7 from email.mime.multipart import MIMEMultipart  # 邮件格式
    8 
    9 from email.mime.image import MIMEImage  # 发送带图片邮件

    3.定义测试用例路径

    test_dir = './testcase/'

    或者

    list_1 = 'test_case\testcase'

    4.查找元素(testcase)

    discover = unittest.defaultTestLoader.discover(test_dir,'*case.py')

    5.定义测试报告文件名以及取前面时间加入到测试报告文件名中

    # 定义报告存放路径,支持相对路径

    file_name = './report/' + strftime('%Y_%m_%d_%H_%M_%S') + '.html'

    6.创建文件

    fp = open(file_name,'wb')
    HTMLTestRunner(stream=fp,description='描述',title='标题').run(discover)

    7.关闭文件

    fp.close()

    附件:

    # -*- coding: utf-8 -*-
    
    import unittest
    from HTMLTestRunner import HTMLTestRunner
    import time,os,datetime
    import smtplib
    from email.mime.text import MIMEText
    from email.mime.multipart import MIMEMultipart
    from email.mime.image import MIMEImage
    
    
    
    # 取test_case文件夹下所有用例文件
    def creatsuitel(lists):
        testunit = unittest.TestSuite()
        # discover 方法定义
        discover = unittest.defaultTestLoader.discover(lists, pattern='start_*.py', top_level_dir=None)
        #discover 方法筛选出来的用例,循环添加到测试套件中
        for test_suite in discover:
            for test_case in test_suite:
                testunit.addTests(test_case)
                print(testunit)
        return testunit
    list_1 = 'test_case\test_case_1'
    alltestnames = creatsuitel(list_1)
    
    #取前面时间加入到测试报告文件名中
    now = time.strftime("%Y-%m-%M-%H_%M_%S", time.localtime(time.time()))
    filename = "report\"+now+'result.html' #定义个报告存放路径,支持相对路径。
    fp = open(filename, 'wb')
    runner = HTMLTestRunner(stream=fp, title='Report_title', description='Report_description')
    
    if __name__ == "__main__":
        # 执行测试用例集并生成报告
        runner = unittest.TextTestRunner()



  • 相关阅读:
    雷林鹏分享:EJB回调
    雷林鹏分享:EJB注解
    雷林鹏分享:EJB持久性
    雷林鹏分享:EJB有状态会话Bean
    雷林鹏分享:EJB无状态Bean
    雷林鹏分享:EJB创建应用
    雷林鹏分享:EJB概述
    雷林鹏分享:EJB教程
    Java集合框架
    Java集合源码剖析——ArrayList源码剖析
  • 原文地址:https://www.cnblogs.com/yfacesclub/p/8989445.html
Copyright © 2020-2023  润新知