欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

在unittest框架中使用测试套件测试多个用例,并生成测试报告

程序员文章站 2022-04-02 10:47:52
先上代码再解释:import timeimport unittestimport HTMLTestRunnersuite = unittest.TestSuite()tests = unittest.defaultTestLoader.discover("F:/bilibili/python_selenium",pattern="unitTest*.py") //这里的意思是默认加载寻找F:/bilibili/python_selenium目录下以unitTest开头的py文件suite.a...

先上代码再解释:

import time
import unittest
import HTMLTestRunner

suite = unittest.TestSuite()
tests = unittest.defaultTestLoader.discover("F:/bilibili/python_selenium"
,pattern="unitTest*.py") //这里的意思是默认加载寻找F:/bilibili/python_selenium目录下以unitTest开头的py文件
suite.addTests(tests)

now = time.strftime("%Y%m%d %H%M%S",time.localtime())
reportFile = now+"_Result.html"
file = open(reportFile,"wb")//“wb”就是读写
runner = HTMLTestRunner.HTMLTestRunner(stream=file,title="测试报告",description="测试描述")
runner.run(suite)

一.导入HTMLTestRunner.py文件
注意,这里的HTMLTestRunner是Python标准库的unittest模块的扩展,既不能通过命令终端‘pip install HTMLTestRunner’安装,也不能直接在Pycharm的setting中配置,需要去自行下载。
下载链接:http://tungwaiyip.info/software/HTMLTestRunner.html
进入页面之后,右键“链接另存为…”,下载完成后导入到 python 中的 Lib /site-packages文件夹中

二.修改HTMLTestRunner.py文件,如果你下载的是python2版本的
【如果不修改,运行之后就会报“ModuleNotFoundError: No module name ‘StringIO’”这个错误】

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

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

第631行,将print >>sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime)修改成print(sys.stderr, ‘\nTimeElapsed: %s’ % (self.stopTime-self.startTime))

第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

三.运行之后,测试报告会自动生成
在unittest框架中使用测试套件测试多个用例,并生成测试报告
右击HTML文件,如下图即可查看
在unittest框架中使用测试套件测试多个用例,并生成测试报告
在unittest框架中使用测试套件测试多个用例,并生成测试报告

本文地址:https://blog.csdn.net/qq_43096786/article/details/110927663