使用HTMLTestRunner.py生成测试报告

news2024/11/25 23:57:50

1、如何收集测试结果?
        使用第三方封装好类HTMLTestRunner.py生成HTML测试报告

# encoding:utf-8
import unittest
import time
from HTMLTestRunner import HTMLTestRunner
  
class MyTestCase(unittest.TestCase):
    # 每条用例初始化
    def setUp(self):
        self.initdata = "hello allard"
 
    # 测试用例,以test开头
    def test_something(self):
        self.assertEqual("hello allard", self.initdata)
 
    # 每条用例执行完后释放资源
    def tearDown(self):
        pass
 
 
if __name__ == '__main__':
    # 声明一个suite
    suite = unittest.TestSuite()
    # 从类加载用例集
    cases = unittest.TestLoader().loadTestsFromTestCase(MyTestCase)
    # 添加用例到suite
    suite.addTests(cases)
    # 声明TestRunner
    # myTestRunner = unittest.TextTestRunner(verbosity=2)
 
    # 生成HTML TestReport
    fp = open("testreport.html", "wb")
    myTestRunner = HTMLTestRunner(stream=fp, title=u"测试报告",
                                  description=u"用例测试情况")

    # 执行Runner
    myTestRunner.run(suite)
    # 关闭文件流
    fp.close()

2、如何管理测试报告?
        把所有执行的测试结果都收集起来,以时间戳作为报告的名称,存到某一个路径下就可以实现对Report管理。

# 将上面脚本中“生成HTML TestReport”代码改成如下:
now = time.strftime("%Y-%m-%d-%H_%M_%S", time.localtime())
HtmlFile = "report/" + now + "_Report.html"
fp = open(HtmlFile, "wb")
myTestRunner = HTMLTestRunner(stream=fp, title=u"测试报告",
                              description=u"用例测试情况")
# 执行Runner
myTestRunner.run(suite)
# 关闭文件流

另外一种方式

代码文件目录如下

test.py 代码内容

# coding:utf-8

__author__ = 'Jeff.xie'

import importlib
import unittest
from time import sleep
import sys,os
sys.path.append(os.getcwd())

class Test(unittest.TestCase):

    @classmethod
    def setUpClass(self):
        print('start')

    def tearDownClass(self):
        print('finish')

    def test_1(self):
        print(1)
        self.assertEqual(2,2)

    def test_2(self):
        print(2)

    def test_3(self):
        print(3)
        assert  3==4


if __name__ == '__main__':
    suite =unittest.TestSuite()
    suite.addTest(Test('test_2'))  
    suite.addTest(Test('test_1'))
    runner = unittest.TextTestRunner()
    runner.run(suite)

test1.py 代码内容

__author__ = 'Jeff.xie'

import unittest
from study.s_unittest.test import Test

from study.s_unittest.HTMLTestRunner import HTMLTestRunner
# import HTMLTestRunner.HTMLTestRunner as HTML
import sys,os,time
sys.path.append(os.getcwd())

class Test1(unittest.TestCase):
    def test_suite(self):
        now = time.strftime("")
        suit = unittest.TestSuite()
        list = ['test_2', 'test_1', 'test_3']
        for aa in list:
            suit.addTest(Test(aa))
        # f = open('report2.html', 'wb')
        # report = HTMLTestRunner(stream=f, title='title', description='desc')
        # report.run(suit)

    #         %Y  Year with century as a decimal number.
    # %m  Month as a decimal number [01,12].
    # %d  Day of the month as a decimal number [01,31].
    # %H  Hour (24-hour clock) as a decimal number [00,23].
    # %M  Minute as a decimal number [00,59].
    # %S  Second as a decimal number [00,61].
    # %z  Time zone offset from UTC.
    # %a  Locale's abbreviated weekday name.
    # %A  Locale's full weekday name.
    # %b  Locale's abbreviated month name.
    # %B  Locale's full month name.
    # %c  Locale's appropriate date and time representation.
    # %I  Hour (12-hour clock) as a decimal number [01,12].
    # %p  Locale's equivalent of either AM or PM.

        now_str=time.strftime("%Y_%m_%d_%H_%M_%S",time.localtime(time.time()))
        reportname = 'report_'+now_str+'.html'
        with open(reportname, 'wb') as f:
            HTMLTestRunner(stream=f, title='title', description='desc', verbosity=2).run(suit)
        # runner = unittest.TextTestResult(verbosity=2)
        # runner.run(suit)


if __name__ == '__main__':
    unittest.main()

自动生成了测试报告

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/90086.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据技术之Spark基础解析

大数据技术之Spark基础解析 第1章 Spark概述 1.1什么是Spark 什么是Spark? 大数据的电花火石。 Spark类似于MapReduce的低延迟的交互式计算框架。 Spark是UC Berkeley AMPLab开发的是一种计算框架,分布式资源工作交由集群管理软件(Mesos、YARN&am…

Unity Addressables资源管理 打包路径设置

1.全局路径设置窗口的菜单位置 或 2.窗口界面 初始: Local:本地路径 Remote:远程路径 build指资源包生成位置 Load指资源包加载路径 BuildTarget:一个路径变量 Built-In 是内置默认的本地路径EditorHosted 则是编辑器和【托管服务】一起使…

零代码是什么?

上有国家层面的数字中国,数字经济的顶层规划,下有信息化飞速发展让组织、个人都深切体会到了信息技术带给生活的便利,如今信息化技术领域热度很高的低代码(LowCode)和零代码(No-Code)又开始进入…

太强了,GitHub白嫖的SpringCloud微服务进阶宝典,啃完吊打面试官

前言 自 2014 年起,微服务技术一直火热至今。随着越来越完善的微服务技术栈的发布,以及越来越多的微服务项目实际的落地和上线,使用 Java 技术栈的企业应该都在尝试或者已经落地了各自的微服务项目。同时,通过招聘网站的信息和每…

C# CallerMemberName,CallerFilePath,CallerLineNumber的使用

总目录 文章目录总目录前言一、作用二、使用1.案例三、使用场景总结前言 本文主要介绍CallerMemberName,CallerFilePath,CallerLineNumber的使用。 一、作用 本文将介绍的三个特性作用如下: CallerMemberName 允许获取方法调用方的方法或属…

基于STM32与PCA9685制作四足机器人(代码开源)

前言:本文为手把手教学基于STM32的四足机器人项目——JDY-31蓝牙控制,特别地,本次项目采用的是STM32作为MCU。四足机器人的支架为3D打印件,SG90舵机驱动机器人实现姿态运动。借助PCA9685舵机驱动板实现12路PWM波控制,更…

基于java+springboot+mybatis+vue+mysql的留守儿童爱心网站

项目介绍 随着留守儿童爱心管理的不断发展,留守儿童爱心网站在现实生活中的使用和普及,留守儿童爱心管理成为近年内出现的一个热门话题,并且能够成为大众广为认可和接受的行为和选择。设计留守儿童爱心网站的目的就是借助计算机让复杂的管理…

[附源码]Node.js计算机毕业设计二手图书回收销售网站Express

项目运行 环境配置: Node.js最新版 Vscode Mysql5.7 HBuilderXNavicat11Vue。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等等。 环境需要 1.运行环境:最好是Nodejs最新版,我…

程序调试:日常经验总结(一)

程序调试:日常经验总结一:如何快速的去查询一个类甚至是一个jar包中的class文件?二:如何快速找到本地项目编译之后的字节码文件三:本地启动小实例绑定同一个端口时候发生的报错。一:如何快速的去查询一个类…

[附源码]Python计算机毕业设计防疫卫生资讯推荐系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

taro 兼容支付宝小程序和微信小程序<九>---判断是否是开发者工具/开发版/体验版/正式版/测试环境/正式环境

项目: taro3 vue3 判断是支付宝/微信/H5 支付宝 -> process.env.TARO_ENV ‘alipay’ 微信 -> process.env.TARO_ENV ‘weapp’ H5 -> process.env.TARO_ENV ‘h5’ 判断是否是开发者工具 支付宝 -> my.isIDE 微信 -> Taro.getSystemInfoSyn…

[附源码]Python计算机毕业设计-高校科研信息管理系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等…

求最小生成树Prim(普里姆)和Kruskal(克鲁斯卡尔)算法

想求最小生成树,我们首先得弄懂以下几个概念 连通图:图中任意两个顶点都是连通的 极小连通子图:既要保持图连通又要使得边数最少的子图 生成树: 包含图中全部顶点的一个极小连通子图 连通图用通俗的话来讲就是,某一个顶点,可以直接或者间接…

学习 Shell准没错

什么是shell? 目前的计算机操作系统都采用了某型形式的用户界面,借此指定系统需要操作系统的命令。但是在很多操作系统中,命令行界面是内嵌的,是人与计算机交互的唯一方式。操作系统的命令行页面就是为了执行您的命令。 shell是…

可视化分割体积seg.nrrd(切片为例)

目录 步骤 拓展:CT值/HU值 步骤 不能直接可视化的原因: seg.nrrd保存的是标签类别值,如下图标签类别值是[1,6],没有标记的部分值为0 1.将seg.nrrd保存为nrrd格式,并读取 2.将数组*int(255/标签类别数…

物流行业对接BMW EDI项目案例分析

宝马集团的悠久历史始于1916年,总部位于德国慕尼黑。是德国最成功的汽车和摩托车制造商之一,也是德国规模最大的制造工业公司之一。 项目背景 物流行业C公司作为BMW的承运商,需要将物流信息与BMW通过EDI进行对接。C公司接收BMW发送过来的IF…

【Web安全】认证与会话管理

目录 1. 认证与授权 2. 密码 3. 多因素认证 4. Session与认证 5. Session Fixation攻击 6. Session 保持攻击 7. 单点登录SSO 1. 认证与授权 认证的目的是为了认出用户是谁,而授权的目的是为了决定用户能够做什么。 认证实际上是一个验证凭证的过程。 …

通达信交易接口代码的执行过程分享

股票软件一般都提供了接口,可以参考里面的公式,编写自己的公式,这样就可以得到相应的数据了。无论使用哪种语言,建议先了解文档,然后再阅读各编程语言的用户手册。 通达信交易接口代码的执行过程分享: //…

非零基础自学Golang 第7章 函数 7.4 可变参数

非零基础自学Golang 文章目录非零基础自学Golang第7章 函数7.4 可变参数7.4.1 可变参数函数的使用7.4.2 可变参数与内置函数7.4.3 可变参数的传递第7章 函数 7.4 可变参数 Go语言支持可变参数的特性,即函数声明时可以没有固定数量的参数。 可变参数的函数格式如下…

相关分析和回归分析

相关与回归分析就是了解变量之间相关关系的统计方法 一.相关分析 具有相关关系的变量之间,如果不区分原因和结果,我们称之为相关分析 相关分析是看两个因素之间的相关性,不需要确定哪个是自变量,哪个是因变量,两个因…