1、HTMLTestRunner介绍

HTMLTestRunner是一个第三方的unittest HTML报告库,用于python单元测试框架的TestRunner。它是生成一个HTML报告,以一目了然的网页形式展现出来。如下图:

最简单的方法是调用它的主方法。如:

当然调用的前提是我们首先需要下载 htmlTestRunner.py文件,该文件可以作为我们的模块被调用,有两种方式方法可进行操作第一种是直接将网上下载的文件进行放入pycharm的Lib\site-packages目录下可参照网络教程:https://www.cnblogs.com/cheng10/p/10438156.html,当然还有第二种方式方法,同样我也更推荐大家进行使用第二种,因为在我们进行自动化是,我们可能会调用很多第三方模块,这时我们只需要将我们可能会用到的模块放入到我们创建的python package文件包中即可,同时模块较多时也能更加规范管理,同样我直接将文件放入到网盘当中,地址如下:链接:https://pan.baidu.com/s/1Gv5T0pWhKgaWjjbdZmiFCA       提取码:ganf   (该文件中不需要再次进行修改,因为我已经将绊子给移开了,下载调用就好了)

2、如何使用HTMLTestRunner?

如果1没有问题,那么我们可以开试牛刀了,像我上图一样导入模块没有报错,就可以往下继续了

unittest框架上一章节有详细介绍与说明不懂的可以去翻阅上一章,将下面代码拷贝进行进行运行,

import unittest
import HTMLTestRunner
class testadd(unittest.TestCase):
def setUp(self):
pass
def test_add1(self):
self.assertEqual(2 + 3 + 10,15)
def test_add2(self):
self.assertEqual(10 + 150,160)
def test_add3(self):
#一处出错,查看测试结果
self.assertEqual(2 * 5 * 7, 40)
def tearDown(self):
pass
def suite():
suite = unittest.TestSuite()
suite.addTest(testadd("test_add1"))
suite.addTest(testadd("test_add2"))
suite.addTest(testadd("test_add3"))
return suite
if __name__=="__main__":
# 存放路径在E盘目录下

report_path = f"./report_{strftime('%Y%m%d%H%M%S')}.html"
with open(report_path, "wb") as gfd:
runner = HTMLTestRunner(
stream=gfd,
title="我是自动化测试标题",
description="我是自动化测试描述"
)
runner.run(suite)

fp.close()

运行后我们可查看运行结果,我们会看到运行成,但是为什么在当前未生成html文件啊,那么这个测试报告文件去哪里了呢?

3、解决pycharm + HTMLTestRunner 不能够生成html报告

网上办法都试了一遍,但是从根本原因来说是因为:pycharm 在运行测试用例的时候,默认是以unittest框架来运行的,所以不能够生成测试报告。

参考文章:https://www.cnblogs.com/santiandayu/p/10004179.html

3.1、如何判断是否以unittest框架运行

只要运行环境是unittest in …的,就都是以unittest框架运行的

3.2、解决方案

只要不以unittest框架方式运行就可解决不能生成报告的问题。可自己新增一个不以unittest框架方式运行的环境。
1)如下点击edit configurations–>选中python–>点击+
2)点击python
3)填写环境名称和脚本路径
4)选择步骤三种新增的环境,运行脚本,即可生成报告

解惑unittest框架中导入HTMLTestRunner模块后正常运行却无法生成HTML报告问题的更多相关文章

  1. 在Pycharm中导入第三方模块库(诸如:matplotlib、numpy等)

    在Pycharm中导入第三方模块库 一.打开pycharm: 二.点击菜单上的“file” -> “setting”: 三.步骤二完成后出现界面如下所示.选中你的项目(比如thisyan Pro ...

  2. PyCharm中导入MySQLDB模块小结

    安装完MySQL-python驱动,在PyCharm中导入MySQLDB模块一直不成功 Settings里面也没有MySQLdb 百般尝试找解决办法,一直搞不定,最后抱着试一试的心态尝试了一个办法: ...

  3. IDEA中导入Maven模块

    IDEA中导入Maven模块方式有二种: 1)批量添加,不可添加文件夹 2)单个添加,可添加任意文件

  4. unittest框架中读取有特殊符号的配置文件内容的方法-configparser的RawConfigParser类应用

    在搭建Unittest框架中,出现了一个问题,配置文件.ini中,出现了特殊字符如何处理? 通过 1.configparser的第三方库对应的ConfigParser类,无法完成对特殊字符的读取: # ...

  5. unittest框架下的HTMLTestRunner报告模块使用及优化

    引言 在做接口自动化测试的时候,使用python单元测试框架unittest下HTMLTestRunner报告模板,可以很好的展示我们测试结果的数据. 官方的标准版模板地址:http://tungwa ...

  6. Unittest框架+ddt数据驱动+HTMLTestRunner+sendmail(自动发送测试报告)+git+Jenkins

    本次写的是针对有代码基础的,没基础建议先去学基础,以下所有描述内容都是我已经在公司项目实践成功的!仅供参考 整体思路: 1.接口自动化用的是Python中unittest框架 2.所有的测试数据用例存 ...

  7. Python 中 使用 HTMLTestRunner 模块生成测试报告

     使用 HTMLTestRunner 模块可以生成测试报告,但是系统自带的报告不详细,不好看,所以找了一份详细的报告 HTMLTestRunner 模板,直接导入就能使用 两种方法生成HTML报告,都 ...

  8. 5.pycharm中导入第三方模块的方法

    最近刚入门学习python,网上查找了一些资料,发现python编程用的软件pycharm还是比较多的,于是就跟随大众,学习使用pycharm,在学习的过程中,想要导入第三方模块pyperclip,但 ...

  9. IDEA从SVN中导入多模块项目

    idea多模块项目的导入 在IntelliJ IDEA中间新建一个空项目,名字可以是svn要检索的的项目名称,原则是开心就好: 现在,我们将我们在svn中的多模块的项目down下来 选中顶部的导航中的 ...

随机推荐

  1. mysql基本操作2

    ##DDL控制表结构,不支持事务##DML控制表数据,支持事务       DQL专门做查询  ##TCL 管理事务##DCL 管理数据库权限     ##ORDER BY  子句-根据指定列对结果集 ...

  2. 使用flex的同时设置超出喜爱是省略号,

    超出宽度,显示省略号 overflow:hidden; white-space:nowrap; text-overflow:ellipsis; 需要注意的是,在移动端在flex元素中的内容进行省略文字 ...

  3. 在 M1 Mac 上开发 .NET MAUI (iOS)

    在 M1 Mac 上开始使用 .NET MAUI 开发 (iOS) 的最简单方法. .NET 多平台应用程序 UI (.NET MAUI) 是一个跨平台框架,用于使用 C# 和 XAML 创建本机移动 ...

  4. Python入门-深入了解数据类型以及方法

    写在开始:每一种数据类型,有对应一种功能,面对不同的问题,使用不同类型. 1.全部数据类型 1.2数值型:解决数字的计算问题 #基础的计算,求除结果,求商,求余数 print(10 / 3) prin ...

  5. Spring Boot-场景启动器

    分析上文快速入门 1.查看pom文件导入的依赖(starter的父项目) <parent> <artifactId>spring-boot-starter-parent< ...

  6. linux lvm逻辑卷管理之lvdisplay命令

    linux 磁盘管理分fdisk parted 和LVM三种方式,我们这里重点是说lvm 我们来看看LVM基本术语(lvm和传统fdisk分区方式有区别)由于传统的磁盘管理不能对磁盘进行磁盘管理,因此 ...

  7. python用户交互与基本运算符

    与用户交互 输入 获取用户输入 username = input('请输入您的用户名>>>:') '''将input获取到的用户输入绑定给变量名username''' print(u ...

  8. 面试官:为什么Vue中的v-if和v-for不建议一起用?

    一.作用 v-if 指令用于条件性地渲染一块内容.这块内容只会在指令的表达式返回 true值的时候被渲染 v-for 指令基于一个数组来渲染一个列表.v-for 指令需要使用 item in item ...

  9. 阿里巴巴稀疏模型训练引擎-DeepRec

    导读:DeepRec从2016年起深耕至今,支持了淘宝搜索.推荐.广告等核心业务,沉淀了大量优化的算子.图优化.Runtime优化.编译优化以及高性能分布式训练框架,在稀疏模型的训练方面有着优异性能的 ...

  10. Istio实践(3)- 路由控制及多应用部署(netcore&springboot)

    前言:接上一篇istio应用部署及服务间调用,本文介绍通过构建.netcore与springboot简单服务应用,实现服务间调用及相关路由控制等 1..netcore代码介绍及应用部署 新建.netc ...