Python使用HTMLTestRunner生成测试报告的操作指南

Evan
Evan
发布时间:2026-10-14 | 3人浏览过
原创

本文详解如何在Python中利用HTMLTestRunner生成可视化的单元测试报告。针对Python 3环境下的兼容性问题,提供了修改后的源码解决方案,并演示了从导入模块、配置运行参数到生成HTML报告文件的完整操作流程,帮助开发者提升测试结果的易读性与汇报效率。

HTMLTestRunner 简介与安装

简介:通过为每个测试用例添加详细的说明文档,可以显著提升测试报告的可读性。掌握这一技巧,有助于在工作中更高效地展示和汇报测试数据。

HTMLTestRunner 是 Python 标准库中 unittest 模块的一个扩展组件,专门用于生成 HTML 格式的测试报告。需要注意的是,该工具无法通过 pip 命令直接安装。

使用前需手动下载 HTMLTestRunner.py 文件,并将其放置到 Python 安装目录下的 Lib 文件夹中(例如 ...\python\Lib 路径),或者放在与脚本相同的目录下。

Python 3 兼容性处理

使用注意事项:

由于 Python 2 与 Python 3 在语法实现上存在差异,原始版本的 HTMLTestRunner 在 Python 3 环境中会出现不兼容的情况。

解决方法:建议导入课程资料中提供的已修改版本的 HTMLTestRunner.py 文件。该版本由社区开发者针对 Python 3 进行了适配和优化。

测试报告生成代码示例


# -*- coding: UTF-8 -*-
import unittest
import HTMLTestRunner
import time

class XdclassTestCase(unittest.TestCase):
  def setUp(self):
    self.age = 32
    self.name = "小D课堂"
    print(" setUp method=======")


  def tearDown(self):
    print(" tearDown method=======")
    #断言是否相同
    self.assertEqual('foo'.upper(), 'FOO')

  def test_one(self):
    u"test_one方法"
    print(" test_one 二当家小D 来了")
    #断言是否相同
    self.assertEqual(self.name, "小D课堂",msg="名字不对")

  def test_two(self):
    u"test_TWO方法说明"
    print(" test_two 前端 来了")
    #断言是否为 true, msg是断言错误的提示信息
    self.assertTrue('XD'.isupper(), msg="不是大写")
    
  def test_three(self):
    u"这是首页登录测试用例"
    print(" test_three 后端 来了")
    self.assertEqual(self.age,32)

  def test_four(self):
    print(" test_four 小D课堂官网上线啦 https://www.xdclass.net")
    self.assertEqual(self.age,32)

if __name__ == '__main__':
  suite = unittest.TestSuite()
  suite.addTest(XdclassTestCase("test_two"))
  suite.addTest(XdclassTestCase("test_one"))
  
  suite.addTest(XdclassTestCase("test_three"))
  suite.addTest(XdclassTestCase("test_four"))

  #verbosity参数可以控制执行结果的输出,0 是简单报告、1 是一般报告(默认)、2 是详细报告
  #runner = unittest.TextTestRunner(verbosity=2)
  #runner.run(suite)
  #文件名中加了当前时间,为了每次生成不同的测试报告
  file_prefix = time.strftime("%Y-%m-%d %H_%M_%S", time.localtime())
  print(file_prefix)
  #创建测试报告,此时这个文件还是空文件
  # wb 以二进制格式打开一个文件,只用于写入,如果文件存在则覆盖,不存在则创建
  fp = open("./"+file_prefix+"_result.html","wb")
  # stream定义一个测试报告写入的文件,title就是标题,description就是描述
  runner = HTMLTestRunner.HTMLTestRunner(stream=fp, title=u"小D课堂 测试报告",description=u"测试用例执行情况")
  
  runner.run(suite)
  fp.close()

以上即为本文的全部内容,希望能为您的学习提供有益帮助。如果您觉得有用,欢迎继续支持本站。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表