HTMLTestRunner生成的测试报告为空且用python run 执行程序时报错问题的解决办法

本文主要是介绍HTMLTestRunner生成的测试报告为空且用python run 执行程序时报错问题的解决办法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

(1)首先我们要知道HTMLTestRunner是什么用来做什么的。HTMLTestRunner说白了就是一个.py文件,我们安装的python是没有自带的,需要我们手动下载来放到python的库里。放进去以后我们就可以通过这个文件来生成我们的自动化测试报告。
(2)其次我们要知道用python unit-test执行程序时是不执行HTMLTestRunner生成测试报告的,要生成测试报告可以对unittest框架稍作改动或是直接用python run执行即可。
(3)最后我们要知道为什么就算我们用python run 执行程序后程序依旧会报错且生成的测试报告为空。

解疑答惑

(一)HTMLTestRunner的下载

下载地址为:http://tungwaiyip.info/software/HTMLTestRunner.html
如果界面点击下载是直接打开一个浏览器界面显示一篇代码时,那就把它全部复制下来,新建一个txt文档粘贴进去并将文档名字改为HTMLTestRunner的.py文件。

(二)HTMLTestRunner的安装

将该文件放到python安装路径下的Lib下,如…\Python38\Lib 。需要使用时import HTMLTestRunner即可

(三)为什么就算我们用python run 执行程序后程序依旧会报错且生成的测试报告为空的解决办法

(1)为什么会报错呢?
原因一:那是因为HTMLTestRunner是基于python2写的,python3现阶段并没有现成的HTMLTestRunner.py文件。我们将下载下的HTMLTestRunner,py直接使用就会引起一系列的报错
(2)为什么生成的报告为空呢?
原因一:由于上诉报错引起
原因二:文件没有关闭

报错解决办法:将下载的HTMLTestRunner.py文件进行下面项的修改
第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(网络上很多这句是没写的,遗漏了。这句不改会有提示错误且测试报告无法生成)
第774行,将ue = e.decode(‘latin-1’)修改成ue = e(网络上写的是775行是错误的,应该为774行)
第631行,将print >> sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime)修改成print(sys.stderr, ‘\nTime Elapsed: %s’ % (self.stopTime-self.startTime))

文件没有关闭导致测试报告为空的解决办法: 代码结尾加一个fp.close()如下所示

if __name__ == "__main__":
#测试套件testunit=unittest.TestSuite()
#添加测试用例到测试套件中testunit.addTest(Baidu("test_baidu_search"))
#定义个报告存放路径filename = 'D:\\report\\result.html'fp =open(filename,'wb')
#定义测试报告runner =HTMLTestRunner.HTMLTestRunner(stream=fp,title=u'百度搜索测试报告',description=u'用例执行情况:')
#运行测试用例runner.run(testunit)
#关闭报告文件fp.close()

生成的测试报告效果图
在这里插入图片描述

这篇关于HTMLTestRunner生成的测试报告为空且用python run 执行程序时报错问题的解决办法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/687845

相关文章

Python中pywin32 常用窗口操作的实现

《Python中pywin32常用窗口操作的实现》本文主要介绍了Python中pywin32常用窗口操作的实现,pywin32主要的作用是供Python开发者快速调用WindowsAPI的一个... 目录获取窗口句柄获取最前端窗口句柄获取指定坐标处的窗口根据窗口的完整标题匹配获取句柄根据窗口的类别匹配获取句

利用Python打造一个Excel记账模板

《利用Python打造一个Excel记账模板》这篇文章主要为大家详细介绍了如何使用Python打造一个超实用的Excel记账模板,可以帮助大家高效管理财务,迈向财富自由之路,感兴趣的小伙伴快跟随小编一... 目录设置预算百分比超支标红预警记账模板功能介绍基础记账预算管理可视化分析摸鱼时间理财法碎片时间利用财

MyBatis模糊查询报错:ParserException: not supported.pos 问题解决

《MyBatis模糊查询报错:ParserException:notsupported.pos问题解决》本文主要介绍了MyBatis模糊查询报错:ParserException:notsuppo... 目录问题描述问题根源错误SQL解析逻辑深层原因分析三种解决方案方案一:使用CONCAT函数(推荐)方案二:

Python中的Walrus运算符分析示例详解

《Python中的Walrus运算符分析示例详解》Python中的Walrus运算符(:=)是Python3.8引入的一个新特性,允许在表达式中同时赋值和返回值,它的核心作用是减少重复计算,提升代码简... 目录1. 在循环中避免重复计算2. 在条件判断中同时赋值变量3. 在列表推导式或字典推导式中简化逻辑

python处理带有时区的日期和时间数据

《python处理带有时区的日期和时间数据》这篇文章主要为大家详细介绍了如何在Python中使用pytz库处理时区信息,包括获取当前UTC时间,转换为特定时区等,有需要的小伙伴可以参考一下... 目录时区基本信息python datetime使用timezonepandas处理时区数据知识延展时区基本信息

Python位移操作和位运算的实现示例

《Python位移操作和位运算的实现示例》本文主要介绍了Python位移操作和位运算的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一... 目录1. 位移操作1.1 左移操作 (<<)1.2 右移操作 (>>)注意事项:2. 位运算2.1

使用Python和Pyecharts创建交互式地图

《使用Python和Pyecharts创建交互式地图》在数据可视化领域,创建交互式地图是一种强大的方式,可以使受众能够以引人入胜且信息丰富的方式探索地理数据,下面我们看看如何使用Python和Pyec... 目录简介Pyecharts 简介创建上海地图代码说明运行结果总结简介在数据可视化领域,创建交互式地

Redis 热 key 和大 key 问题小结

《Redis热key和大key问题小结》:本文主要介绍Redis热key和大key问题小结,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、什么是 Redis 热 key?热 key(Hot Key)定义: 热 key 常见表现:热 key 的风险:二、

利用python实现对excel文件进行加密

《利用python实现对excel文件进行加密》由于文件内容的私密性,需要对Excel文件进行加密,保护文件以免给第三方看到,本文将以Python语言为例,和大家讲讲如何对Excel文件进行加密,感兴... 目录前言方法一:使用pywin32库(仅限Windows)方法二:使用msoffcrypto-too

IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤及问题解决

《IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决》:本文主要介绍IntelliJIDEA中配置SpringMVC环境的详细步骤及问题解决,本文分步骤结合实例给大... 目录步骤 1:创建 Maven Web 项目步骤 2:添加 Spring MVC 依赖1、保存后执行2、将新的依赖