Python使用HTMLTestRunner生成测试报告的操作指南
本文详解如何在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()
以上即为本文的全部内容,希望能为您的学习提供有益帮助。如果您觉得有用,欢迎继续支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









