首页/文章/ 详情

软件开发—「Python自动化测试实战:从unittest到HTML报告生成」

10月前浏览399
在软件开发过程中,自动化测试是保障代码质量、提升交付效率的重要手段。而Python凭借其简洁的语法和强大的生态,成为自动化测试领域的热门选择。今天,我们来深入探讨如何使用 Python 的 unittest 框架实现自动化测试,并通过 HTMLTestRunner 生成清晰易读的测试报告。
一      

为什么要用自动化测试?    


   

   

   

   

手动测试耗时耗力,尤其在迭代频繁的项目中,重复执行相同的测试用例容易出错,而自动化测试可以:

  • 快速回归测试。

  • 提高测试覆盖度。    

  • 减少人为错误。    

  • 生成可视化测试报告。

二      

unittest 框架简介    


   

   

   

   

unittest 是 Python 内置的单元测试框架,类似于 Java 的 JUnit,支持:  

  • 测试用例编写    

  • 测试套件组织    

  • 断言功能    

  • 测试报告输出    

示例:一个简单的计算器类测试  

# calculator.py      

class Calculator:      

    def add(self, a, b):      

        return a + b      

            

    def subtract(self, a, b):      

        return a - b      

            

# test_calculator.py      

import unittest      

from calculator import Calculator      

            

class TestCalculator(unittest.TestCase):      

    def setUp(self):      

        self.calc = Calculator()      

    def test_add_positive_numbers(self):      

        result = self.calc.add(2, 3)      

        self.assertEqual(result, 5)      

    def test_add_negative_numbers(self):      

        result = self.calc.add(-1, -1)      

        self.assertEqual(result, -2)      

    def test_subtract(self):      

        result = self.calc.subtract(5, 3)      

        self.assertEqual(result, 2)      

if __name__ == '__main__':      

    unittest.main()

运行测试,结果为:  

虽然结果直观,但不够“专业”。我们需要更清晰的报告!

三      

生成HTML测试报告 — 使用HTMLTestRunner    


   

   

   

HTMLTestRunner 是一个第三方库,可以将测试结果生成为美观的 HTML 报告,便于团队共享与查看。  

安装依赖:pip install HTMLTestRunner  

注意:如果你使用的是较新版本的Python,建议安装 html-test-runner 或使用 pytest-html 替代。  

示例:整合HTMLTestRunner 生成报告  

# run_test.py      

import unittest      

import HTMLTestRunner      

import os      

# 加载测试用例      

suite = unittest.TestLoader().loadTestsFromTestCase(TestCalculator)      

# 指定报告路径      

report_file = './test_report.html'      

with open(report_file, 'wb') as f:      

    runner = HTMLTestRunner.HTMLTestRunner(      

        stream=f,      

        title='计算器测试报告',      

        description='测试计算器加减法 功能'      

    )      

    runner.run(suite)      

print("测试报告已生成:", report_file)      

运行脚本后,会生成一个名为test_report.html 的文件,打开它可以看到:  

  • 测试总览(通过/失败/错误)    

  • 每个测试用例的详细信息    

  • 执行时间、日志记录    

  • 美观的表格展示

四      

测试套件实战:批量执行多个测试文件    


   

   

   

   

当项目变大时,我们可能有多个测试文件。这时就需要使用测试套件(Test Suite)来统一管理。  

# test_suite.py      

import unittest      

import HTMLTestRunner      

import os      

            

# 获取当前目录下的所有测试文件      

test_dir = './tests'      

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

            

# 生成报告      

report_path = './all_tests_report.html'      

with open(report_path, 'wb') as f:      

    runner = HTMLTestRunner.HTMLTestRunner(      

        stream=f,      

        title='全部测试报告',      

        description='集成所有模块测试'      

    )      

    runner.run(discover)      

这样就可以一次性运行多个测试模块,自动生成综合报告。

五      

为什么推荐使用HTML 报告?    


   

   

   

   
  • 可视化展示,图表形式呈现测试结果 。    

  • 易于分享,可直接发送给产品经理或项目经理 。    

  • 问题定位快,失败用例可点击查看详情 。    

  • 支持多环境,适合CI/CD 集成 。

六      

总结:自动化测试完整流程    


   

   

   

   
  • 编写测试用例→ 使用 unittest.TestCase 。    

  • 组织测试套件→ 使用 TestSuite 或 discover 。    

  • 执行测试并生成报告→ 使用 HTMLTestRunner。

自动化测试不是“写完就不管”,而是持续改进、持续反馈的过程。掌握unittest和 HTMLTestRunner,是你迈向高效测试的第一步。


来源:IFD优飞迪
ACT二次开发电子python云计算UM数字孪生
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2025-12-13
最近编辑:10月前
优飞迪科技
赋能新仿真,创优新设计
获赞 326粉丝 351文章 541课程 4
点赞
收藏
作者推荐
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈