我又把HTMLTestRunner改了一下,支持Python3,添加echarts统计饼图

2023-11-19

之前用Bootstrap把HTMLTestRunner改的美观了一点,同时改成了中文的报告,但那个是基于Python2的,见这篇博文 selenium之 输出报告,对HTMLTestRunner进行样式调整后的示例

这次呢,博主又给它改成了Python3的版本,同时给它加上了一个用echarts实现的统计饼图。效果如下:

统计饼图

经过评论区一位同学提醒,把用导入js文件的方式改成了用cdn的方式,不需要建文件夹放js文件了,生成html报告,联网就ok了

写一段代码做试验:

import unittest
from utils.HTMLTestRunner_PY3 import HTMLTestRunner


class TestHTMLTestRunnerPY3(unittest.TestCase):
    def test_py3_success(self):
        self.assertEqual(1+1, 2)

    def test_py3_fail(self):
        self.assertEqual(1+1, 3)


class TestHTML(unittest.TestCase):
    def test_html_success(self):
        self.assertEqual(1+2, 3)


class TestError(unittest.TestCase):
    def test_error(self):
        self.assertEqual(1/0, 1)


if __name__ == '__main__':
    import os
    report = os.path.join('E:/PY/P2C_test/report/report.html')
    st = unittest.TestSuite()
    st.addTests([TestHTMLTestRunnerPY3('test_py3_success'), TestHTMLTestRunnerPY3('test_py3_fail'),
                 TestHTML('test_html_success'), TestError('test_error')])
    with open(report, 'wb') as f:
        runner = HTMLTestRunner(f, verbosity=2, title='示例测试报告', description='执行人:灰蓝')
        runner.run(st)

执行后生成报告,打开report.html,如图:

示例report

Python3的unittest中带了subTest,这是在Python2的unittest中没有的,需要引入unittest2才行。博主这次修改也为报告增加了subTest的支持。

示例修改如下:

import unittest
from utils.HTMLTestRunner_PY3 import HTMLTestRunner


class TestHTMLTestRunnerPY3(unittest.TestCase):
    """ 测试PY3 HTMLTESTRUNNER """
    def test_py3_success(self):
        """ 此用例成功 """
        self.assertEqual(1+1, 2)

    def test_py3_fail(self):
        """ 此用例失败 """
        self.assertEqual(1+1, 3)


class TestHTML(unittest.TestCase):
    """ 测试PY3 HTMLTESTRUNNER 2 """
    def test_html_success(self):
        """ 此用例成功 """
        for i in range(5):
            with self.subTest(data=i):  # 注意这里subTest的用法
                self.assertEqual(1+2, 3)


class TestError(unittest.TestCase):
    """ 测试PY3 HTMLTESTRUNNER ERROR 3 """
    def test_error(self):
        """ 此用例出错 """
        self.assertEqual(1/0, 1)


if __name__ == '__main__':
    import os
    report = os.path.join('E:/PY/P2C_test/report/report.html')
    st = unittest.TestSuite()
    st.addTests([TestHTMLTestRunnerPY3('test_py3_success'), TestHTMLTestRunnerPY3('test_py3_fail'),
                 TestHTML('test_html_success'), TestError('test_error')])
    with open(report, 'wb') as f:
        runner = HTMLTestRunner(f, verbosity=2, title='示例测试报告', description='执行人:灰蓝')
        runner.run(st)

修改后,我们在其中一个用例中使用了subTest,原来的一个用例会拆分成5个子用例执行,输出的报告如图:

subTest示例

很方便做真正的参数化。

喜欢的同学可以去 博主的github去fork ,之后博主可能继续做更多修改。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我又把HTMLTestRunner改了一下,支持Python3,添加echarts统计饼图 的相关文章

随机推荐

  • PHP的语法

    h3 h3 p p 1 语言标记 开始标记 中间写PHP代码 2 echo 输出内容 3 语句结束符 是结束符 代码碰到 号 才表示一句代码完成 标记里的最后一行 可以不用 号 但是养成习惯
  • 2023年计算机科学与信息技术国际会议(ECCSIT 2023)

    会议简介 Brief Introduction 2023年计算机科学与信息技术国际会议 ECCSIT 2023 会议时间 2023年12月15日 17日 召开地点 中国 北海 大会官网 www eccsit org 2023年计算机科学与信
  • Linux查看当前文件夹的大小

    在Linux中 可以使用du disk usage 命令来查看当前文件夹的大小 以下是一些使用du的方法 查看当前文件夹的大小 为了查看当前文件夹的总大小 可以在文件夹中运行 du sh 这里 s 表示摘要模式 只显示总计 h 表示人类可读
  • ElasticSearch - function_score 实例说明

    官方说明 function score 通过实例说明 先准备数据和索引 在ES插入三笔数据 其中language是keywork类型 like是integer类型 代表点赞量 language java like 5 language py
  • 《QDebug 2023年3月》

    一 Qt Widgets 问题交流 二 Qt Quick 问题交流 三 其他 1 Qt qmake 在 Mac 上生成 dylib 相关的问题 默认的 lib 工程 qmake 输出如图 会生成带版本号的软链接 一般我们只需要一个 lib
  • 二分法求左右边界

    二分法求左右边界搞定 鉴于本人每次做二分的题都被二分的边界搞的云里雾里的 所以这次直接一劳永逸 道理我都懂 就是之前不想整理 直接定义left和right为左闭右闭 这个很重要 当然二分也要求数组必须是有序的 比如 数组长度为10 则lef
  • 新唐NUC980使用记录(5.10.y内核):u-boot & linux & rootfs 编译与烧录测试(基于SD1位置SD卡)

    文章目录 目的 基础准备 烧录环境 开发编译环境 SD卡分区 制作和设置编译工具链 制作toolchain和rootfs 拷贝rootfs内容到SD卡 设置编译工具链 u boot编译与测试 下载 配置与编译 烧录u boot与环境变量 l
  • Java 正则表达式工具类大全

    import java util regex Matcher import java util regex Pattern author nql Description 验证工具类 date now public class Validat
  • Matlab 超前滞后相关,自相关xcorr

    Matlab提供了计算互相关和自相关的函数xcorr函数 1 使用方法 c xcorr x y c xcorr x c xcorr x y option c xcorr x option c xcorr x y maxlag
  • linux函数库之htons(), ntohl(), ntohs(),htons() 函数

    linux疑难问题排查实战 分享了作为公司专家 在项目开发过程中内存优化 堆 栈 代码段 数据段 性能优化 死机 栈越界 堆越界 死锁等疑难问题排查的案例 使用的工具 perf asan strace memleak等 工作经验 大家可以点
  • Linux中的firewall-cmd

    2023年8月4日 周五上午 目录 打开端口 关闭端口 查看某个端口是否打开 查看当前防火墙设置 firewall cmd中的服务 在防火墙中什么是服务 为什么会有服务 打开或关闭服务 查看某个服务是否打开 firewall cmd中的 z
  • Unity MRTK使用详解(Htc vive+LeapMotion)

    MRTK Unity是一个由Microsoft驱动的开源项目 提供了多种组件和功能 用于加速Unity中的跨平台MR应用程序开发 以下是其一些功能 提供跨平台输入系统和用于空间交互和UI组件 启用快速原型通过在编辑器中的模拟 让你马上看到变
  • 在vscode内运行php代码文件

    一 下载php 下载php链接 下载后解压缩文件 我新建了一个php文件夹在解压缩到这里 二 下载Xdebug 下载Xdebug链接 下载后复制粘贴到php文件夹下的ext文件夹 三 修改 在php文件夹下找到这两个文件夹 复制第一个文件夹
  • Hudi原理

    1 摘要 Apache Hudi提供了不同的表类型供根据不同的需求进行选择 提供了两种类型的表 Copy On Write COW Merge On Read MOR 2 术语介绍 在深入研究 COW 和 MOR 之前 让我们先了解一下 H
  • checking for module ‘sqlite3‘ package ‘sqlite3‘ not found

    checking for module sqlite3 package sqlite3 gt 某个版本号 not found 在编译安装其他源码包的时候遇到缺少sqlite3库的问题 这里字面上的意思是没有安装sqlite3 但是造成这个问
  • (python)常见面试题

    1 一行代码实现1 100之和 2 如何在一个函数内部修改全局变量 3 列出5个python标准库 os 提供了不少与操作系统相关联的函数 sys 通常用于命令行参数 re 正则匹配 math 数学运算 datetime 处理日期时间 4
  • Redis数据实战之“万金油”的String,为什么不好用了?

    Redis数据实战之 万金油 的String 为什么不好用了 引言 为什么 String 类型内存开销大 用什么数据结构可以节省内存 如何用集合类型保存单值的键值对 引言 以一个项目需要为例 需要开发一个图片存储系统 要求这个系统能快速地记
  • DNS使用TCP与UDP

    DNS同时占用UDP和TCP端口53是公认的 这种单个应用协议同时使用两种传输协议的情况在TCP IP栈也算是个另类 但很少有人知道DNS分别在什么情况下使用这两种协议 先简单介绍下TCP与UDP TCP是一种面向连接的协议 提供可靠的数据
  • tensorflow-ssd 实现纸张缺陷检测

    环境 win10 tensorflow1 10 python3 6 9 下载https github com balancap SSD Tensorflow到本地 1 解压并测试demo 打开Anaconda prompt 切换到SSD T
  • 我又把HTMLTestRunner改了一下,支持Python3,添加echarts统计饼图

    之前用Bootstrap把HTMLTestRunner改的美观了一点 同时改成了中文的报告 但那个是基于Python2的 见这篇博文 selenium之 输出报告 对HTMLTestRunner进行样式调整后的示例 这次呢 博主又给它改成了