使用 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()



原文地址:https://www.cnblogs.com/yfacesclub/p/8989445.html