使用BeautifulReport生成测试报告及遇到的雷点

news2024/9/23 15:31:35

BeautifulReport是一个基于unittest框架的测试报告生成工具,它可对自动化测试生成美观、详细的HTML测试报告。

使用BeautifulReport需要先安装

pip install BeautifulReport

示例

一个加法功能的测试用例,使用unittest+BeautifulReport实现自动化并生成测试报告

#!/usr/bin/env python
# -*- coding: UTF-8 -*-


from BeautifulReport import BeautifulReport
import unittest


def add(a, b):
    return a + b


# 加法功能测试用例
class Test11(unittest.TestCase):
    # 测试用例1
    def test_addition_1(self):
        result = add(2, 3)
        self.assertEqual(result, 5)

    # 测试用例2
    def test_addition_2(self):
        result = add(0, 0)
        self.assertEqual(result, 0)

    # 测试用例3
    def test_addition_3(self):
        result = add(-5, 5)
        self.assertEqual(result, 1)


if __name__ == "__main__":

    # 创建测试套件对象
    suite = unittest.TestSuite()

    # 加载测试用例
    suite.addTests([Test11('test_addition_1'), Test11('test_addition_2'), Test11('test_addition_3')])

    # 创建 BeautifulReport 的实例
    result = BeautifulReport(suite)

    # 定义测试报告,设置文件名、用例名称、路径
    result.report(filename='report.html', description='加法功能测试用例', report_dir='D:/Programs/Test/Auto_Test')


上述代码使用了 unittest框架管理测试用例,使用 BeautifulReport 模块来生成漂亮的测试报告。

我们定义了一个名为 add 的函数,用于进行两个数相加的操作,我们来针对这个函数写测试用例。

定义一个名为 Test11 的测试类,并继承自 unittest.TestCase

在该类中,我们编写了三条测试用例:test_addition_1test_addition_2test_addition_3,分别对加法运算进行了不同的测试断言。

接下来,在主程序中创建了一个 TestSuite 对象,并使用 suite.addTest() 方法将三个测试方法分添加到 TestSuite 中。

然后,通过实例化 BeautifulReport(suite) 来生成漂亮的测试报告,并指定文件名、描述和报告保存目录。

最后,调用 report() 方法生成测试报告。

控制台打印结果:

报告打开方式:找到路径,右键open,选择想打开的浏览器

查看报告

BeautifulReport的常用方法和详解

  1. BeautifulReport(__init__) 构造函数:__init__(self, runner=None):初始化 BeautifulReport 对象,可以传入指定的 runner,默认使用 unittest 的 TextTestRunner。

  2. add_test() 方法:add_test(self, test, report_title='Test Report'):添加需要生成报告的测试套件,可以设置报告标题,默认为 "Test Report"。

  3. report() 方法:report(filename='report.html', description='Test Report'):生成测试报告,将结果保存到指定的文件中,默认为 "report.html"。 参数说明:

    • description:报告描述信息,默认为 "Test Report"。
    • filename:要保存的文件名,默认为 "report.html"。
  4. BeautifulReportTestRunner 类(继承自 TextTestRunner):

    • 通过替换 unittest 的 TextTestRunner 实现在运行时调用 BeautifulReport 生成报告。
    • 可以使用该类来代替默认的 TextTestRunner 来运行测试,并生成美观的报告。

雷点:用了unittest框架,beautifulreport的报告文件无法生成

问题:运行测试用例一切正常,只是没有生成测试报告,且main函数里的print函数也都无法打印出来。

因为用了unittest框架,pycharm 在运行测试用例的时候 默认是以unittest 框架来运行的,所以主函数的内容没有执行了。

所以不

需要改成用非unittest框架执行,就可以了,操作步骤如下:

编辑配置

可以看到有一个python配置和一个tests配置,下面这个就是用的unittest框架执行,我们需要吧要执行的文件改到上面的python里

添加,选择python

设置,选择需要得文件,ok,apply,ok

再去执行就可以了

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

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

相关文章

Prometheus-Alertmanage钉钉实现告警

获取钉钉的webhook地址 1、注册企业钉钉 a、注册企业钉钉 浏览器打开钉钉注册页面 填入手机号码,填入获取到的验证码,点注册 填入企业资料并注册 注册成功后,扫描二维码下载钉钉,如下图: b、添加机器人 管理后台 因…

L1-084:拯救外星人

你的外星人朋友不认得地球上的加减乘除符号,但是会算阶乘 —— 正整数 N 的阶乘记为 “N!”,是从 1 到 N 的连乘积。所以当他不知道“57”等于多少时,如果你告诉他等于“12!”,他就写出了“479001600”这个答案。 本题就请你写程序…

【信息论与编码】习题-填空题

目录 填空题1.克劳夫特不等式是判断( )的充要条件。2.无失真信源编码的中心任务是编码后的信息率压缩接近到()限失真压缩中心任务是在给定的失真度条件下,信息率压缩接近到( )。3.常用的检纠错方…

小白综述:深度学习 OCR 图片文字识别

文章目录 1. OCR 算法流程1.1 传统 OCR 方法1.2 深度学习 OCR 方法1.2.1 two-stage方法:文字检测识别1.2.2 端到端方法 2. 文本检测算法3. 文本识别算法3.1 基于分割的单字符识别方法3.2 基于序列标注的文本行识别方法 1. OCR 算法流程 OCR (Optical Character Rec…

微服务-sentinel-基本案例,持久化

sentinel 功能 限流 限流文档 直接拒绝:触发阀值直接抛弃。冷启动:在一段时间内针对突发流量缓慢增长处理数量。 3)匀速器:请求以均匀的速度通过。 降级降级文档 1)RT 统计时间内,大于预设请求数量&…

数据结构入门到入土——链表(1)

目录 一,顺序表表/ArrayList的缺陷 二,链表 三,链表的实现 四,与链表有关的题目练习(1) 1.删除链表中等于给定值 val 的所有节点 2.反转一个单链表 3.给定一个带有头结点 head 的非空单链表&#xf…

全新的C++语言

一、概述 C 的最初目标就是成为 “更好的 C”,因此新的标准首先要对基本的底层编程进行强化,能够反映当前计算机软硬件系统的最新发展和变化(例如多线程)。另一方面,C对多线程范式的支持增加了语言的复杂度&#xff0…

专业实习day3、4(路由器做内网访问公网)

专业实习 代码 display ip interface brief 显示当前设备下所有接口IP undo IP地址支持覆盖,但是正常的命令不能覆盖必须undo(删除)掉 un in en 在做配置的过程中,设备系统一般都会出现一些提示或者告警之类的东西,从…

书生·浦语大模型全链路开源体系 学习笔记 第一课

背景 大模型是发展人工通用人工智能的一个重要途径,能够解决多种任务和多种模态,展示了一个更面向更高阶的智能的潜在途径。大模型的发展历程是从专用模型到通用模型的过程,从语音识别、图像识别、人脸识别等专用模型,到通用的大…

高级分布式系统-第3讲 网络与网络互联

万维网的诞生 1957年10月4日, 苏联发射了人类第一颗人造卫星—斯普特尼克一号 美国政府震惊不已。 他们认为, 在日趋激烈的冷战对抗中, 自己已经全面落后于苏联。 为了扭转这一局面, 美国国防部很快于1958 年 2 月组建了一个神秘…

现代 C++ 小利器:参数绑定包装器堪称「Lambda 小平替」

以下内容为本人的学习笔记,如需要转载,请声明原文链接 微信公众号「ENG八戒」https://mp.weixin.qq.com/s/gt_zxMwhu8UixzCMF73Dng C 原生支持函数输入参数的默认值,但是有些业务场景下对原有设定的默认值不满意,那么可不可以临时…

【已解决】js定义对象属性是.如何访问

当变量没有length属性的时候,可能是个对象变量,当有键值对的时候就可能是个对象,读者都知道的是,用typeof(变量)可以查看属性,今天本文解决的问题是如果js定义对象中属性是"点"如何访问 问题再现 var a {…

java实验室预约管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java servlet 实验室预约管理系统是一套完善的java web信息管理系统 系统采用serlvetdaobean(mvc模式),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数 据库,系统主要采用B/S模式开发。开发环境为T…

【数据采集与预处理】流数据采集工具Flume

一、Flume简介 数据流 :数据流通常被视为一个随时间延续而无限增长的动态数据集合,是一组顺序、大量、快速、连续到达的数据序列。通过对流数据处理,可以进行卫星云图监测、股市走向分析、网络攻击判断、传感器实时信号分析。 (…

【Proteus仿真】【Arduino单片机】太阳能追光系统设计

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使用LCD1602液晶、光敏传感器、ADC模块、按键模块、28BYJ48步进电机驱动模块、直流电机模块等。 主要功能: 系统运行后,L…

Jupyter Lab | 在指定文件夹的 jupyter 中使用 conda 虚拟环境

Hi,大家好,我是源于花海。本文主要了解如何在指定文件夹的 jupyter 中使用 conda 虚拟环境,即在 conda 里面创建虚拟环境、将虚拟环境添加至 jupyter lab/notebook、安装软件包。 目录 一、创建虚拟环境 二、激活并进入虚拟环境 三、安装 …

我们公司内应届生身上的6个共性问题

如题目,本文主要是根据我们公司内真实的应届生身上共同的问题,总结而来。 1. 一天会做很多工作:会跟很多人对接,会一会忙这个一会忙哪个 现象: 说实话,这种情况,我看着都替她着急。自己正在解…

IPD(集成产品开发)

一、简介IPD IPD是指应用于集成产品开发(Integrated Product Development)的一套流程。 IPD流程可分为很多小的流程,这些流程确保企业做正确的事,且正确地做事。 IPD核心的流程之一是PDP(Product Development Proce…

用C语言实现完全平方数计算【一题一策】第三期

题目:一个整数,它加上100后是一个完全平方数,再加上 168 又是一个完全平方数,请问该数是多少? 一、题目分析 首先假设该数为x,则x100y?,y为完全平方数。 然后加上168又是一个完全平方数&…

某金属加工公司的核心人才激励体系搭建项目纪实

【客户行业】金属加工行业 【问题类型】薪酬体系/激励体系 【客户背景】 某大型金属加工企业位于河北地区,成立于2000年,隶属于某大型有色金属集团,是一家集科研、开发、生产、销售于一体的国有企业,人员达到1000人。经过多年…