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. java中操作符的用法

    5.操作符    public class Test{   public static void main(String[] args){     int i, k;     i = 10; /*下面 ...

  2. Spring配置文件-Bean生命周期配置(init-method方法,destory-method方法)

    1.UserDaoImpl类 public class UserDaoImpl implements UserDao { public UserDaoImpl(){ System.out.printl ...

  3. docker容器编排原来这么丝滑~

    前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 概念介绍: Docker Docker 这个东西所扮演的角色,容易理解,它是一个容器引擎,也就是说实际上我们的容器最终是由Docker ...

  4. 基于HiKariCP组件,分析连接池原理

    HiKariCP作为SpringBoot2框架的默认连接池,号称是跑的最快的连接池,数据库连接池与之前两篇提到的线程池和对象池,从设计的原理上都是基于池化思想,只是在实现方式上有各自的特点:

  5. 2021.05.14 tarjan

    2021.05.14 tarjan 标准版tarjan 这里使用数组来模拟栈 void tarjan(int x){ ++ind; dfn[x]=low[x]=ind; stacki[++top]=x ...

  6. Jx.Cms开发笔记(四)-改造Card组件

    在Blazor 组件库 BootstrapBlazor 中Card组件介绍中我们说过,如果我们使用了Card组件的IsCollapsible属性设置了可伸缩的话,就只能使用Text属性来设置标题文本, ...

  7. 基于全志A40i开发板——Linux-RT内核应用开发教程(1)

    目录 1 Linux-RT内核简介 3 2 Linux系统实时性测试 3 3 rt_gpio_ctrl案例 10 4 rt_input案例 15 本文为Linux-RT内核应用开发教程的第一章节--L ...

  8. Java中时间类中的Data类与Time类

    小简博客 - 小简的技术栈,专注Java及其他计算机技术.互联网技术教程 (ideaopen.cn) Data类 Data类中常用方法 boolean after(Date date) 若当调用此方法 ...

  9. XCTF练习题---CRYPTO---safer-than-rot13

    XCTF练习题---CRYPTO---safer-than-rot13 flag:no_this_is_not_crypto_my_dear 解题步骤: 1.观察题目,下载附件 2.打开后发现是个文件 ...

  10. XCTF练习题---WEB---weak_auth

    XCTF练习题---WEB---weak_auth flag:cyberpeace{a9aa5a05f5957a19643640028dbb6946} 解题步骤: 1.观察题目,打开场景 2.观察场景 ...