Python 测试框架unittest和pytest的优劣

一、Unittest

Unittest是Python标准库中自带的单元测试框架,Unittest有时候也被称为PyUnit,就像JUnit是Java语言的标准单元测试框架一样,Unittest则是Python语言的标准单元测试框架。

Unittest支持自动化测试,测试用例的初始化、关闭和测试用例的聚合等功能,它有一个很重要的特性:它是通过类(class)的方式,将测试用例组织在一起。

示例:

在这里插入图片描述
运行结果:


注:unittest有一个关联模块unittest2,但unittest2仅适用于Python 2.4-2.6。这是由于从Python 2.7开始,unittest增加一些新的特性。为了在老的版本中支持这些特性,所以提供了unittest2这个库。但对于Python 2.7及之后的版本,unittest是唯一的。本次示例中使用的为python2.7。

二、Pytest

Pytest是Python的另一个第三方单元测试库。它的目的是让单元测试变得更容易,并且也能扩展到支持应用层面复杂的功能测试。


pytest的特性有:

  • 支持用简单的assert语句实现丰富的断言,无需复杂的self.assert*函数

  • 自动识别测试模块和测试函数

  • 模块化夹具用以管理各类测试资源

  • 对 unittest 完全兼容,对 nose基本兼容

  • 支持Python3和PyPy3

  • 丰富的插件生态,已有300多个各式各样的插件,社区繁荣

示例:


执行结果:

三、Unittest vs Pytest

总结:

总体来说,unittest用例格式复杂,兼容性无,插件少,二次开发方便。pytest更加方便快捷,用例格式简单,可以执行unittest风格的测试用例,无须修改unittest用例的任何代码,有较好的兼容性。pytest插件丰富,比如flask插件,可用于用例出错重跑,还有xdist插件,可用于设备并行执行,效率更高。

以上就是Python 测试框架unittest和pytest的优劣的详细内容。


最后

如果你想学习自动化测试,那么下面这套视频应该会帮到你很多

如何逼自己1个月学完自动化测试,学完即就业,小白也能信手拈来,拿走不谢,允许白嫖....

最后我这里给你们分享一下我所积累和整理的一些文档和学习资料,有需要直接领取就可以了!


以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

​​

​​​​

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JVM(一)

一、初始JVM 1.1 初始JVM JVM 本质上是一个运行在计算机上的程序,他的职责是运行Java字节码文件。 机器码是由二进制编码表示的计算机指令。每个机器码通常对应一个特定的操作,如加法、乘法、跳转等。机器码是计算机能够直接执行的代码,它可以在计算机的内存中存储和执行。…

11 Self-Attention相比较 RNN和LSTM的优缺点

博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https://github.com/nickchen121/Pre-training-language-model 配套博客链接:https://www.cnblogs.com/nickchen121/p/15105048.html RNN 无法做长序列,当一…

Deep Learning for Geophysics综述阅读(未完)

文章题目《Deep Learning for Geophysics: Current and Future Trends》 文章解读:地球物理学(人工智能轨道)——(1)文献翻译《面向地球物理学的深度学习:当前与未来趋势》 - 知乎 (zhihu.com) 这里主要列…

【论文阅读】(2023TPAMI)PCRLv2

目录 AbstractMethodMethodnsU-Net中的特征金字塔多尺度像素恢复多尺度特征比较从多剪切到下剪切训练目标 总结 Abstract 现有方法及其缺点:最近的SSL方法大多是对比学习方法,它的目标是通过比较不同图像视图来保留潜在表示中的不变合判别语义&#xff…

基于springboot基于会员制医疗预约服务管理系统项目【项目源码+论文说明】

基于springboot实现会员制医疗预约服务信息系统演示 摘要 会员制医疗预约服务管理信息系统是针对会员制医疗预约服务管理方面必不可少的一个部分。在会员制医疗预约服务管理的整个过程中,会员制医疗预约服务管理系统担负着最重要的角色。为满足如今日益复杂的管理需…

福建泉州航海快艇蓝光三维扫描全尺寸测量船只外观设计三维建模-CASAIM中科广电

造船行业是一个与全球经济发展密切相关的关键行业。近年来,随着全球经济的快速发展,造船行业也不断进步和发展。快艇制造业作为小型、快速的船只的产业,所生产的船只通常用于娱乐、旅游、商业等方面,因此这种类型的快艇对于外观设…

企业云网盘:如何选择最适合您的解决方案?

企业日常办公每天都会产出大量的文件,如何安全管理文件?企业如何进行高效的文件的共享?企业云网盘产品为企业提供了一个文件解决方案,其安全便捷的特点已成为文件数据管理的热门之选。然而越来越多的品牌进入了企业云网盘市场&…

HUDI概述

序言 参考资料: https://hudi.apache.org/cn/docs/0.9.0/overviewhttps://hudi.apache.org/cn/Overview | Apache Hudi //最新版本的hudi文档 与之前的文档有概述上的很大差异 概述 HUDI(Hadoop Upserts Deletes and Incrementals)是一个开源的数据…

SparkSQL之LogicalPlan概述

逻辑计划阶段在整个流程中起着承前启后的作用。在此阶段,字符串形态的SQL语句转换为树结构形态的逻辑算子树,SQL中所包含的各种处理逻辑(过滤、剪裁等)和数据信息都会被整合在逻辑算子树的不同节点中。逻辑计划本质上是一种中间过…

网络拓扑图怎么画最好?

你们好,我的网工朋友。 好久没和你们聊拓扑图了,群里总是不乏有人问,拓扑图怎么设计,怎么配置,或者让大佬看看自己做的这图有没有啥问题的…… 画拓扑图的方式有很多,在线软件,Visio&#xff…

redis的key超时策略和key淘汰机制(面试题详解)

ChatGPT给出的回答: Redis中的Key超时策略和Key淘汰机制是为了有效管理内存和控制数据的生命周期。 Key超时策略:Redis可以为每个Key设置过期时间,一旦Key过期,它将自动从Redis中删除。可以使用EXPIRE命令为Key设置过期时间&…

高等数学啃书汇总重难点(五)定积分

最近都在忙着刷题,尤其是政治和英语也开始加量复习了,该系列断更了将近2个月~不过最近在刷题的时候又遇到一些瓶颈,因此回归基础来整理一下知史点~ 总的来说,虽然第五章也是重中之重,定理数量也很多,但&…

【FLINK】Kafka数据源通过Flink-cdc进行实时数据同步

何为FLINK-CDC? CDC是Change Data Capture的缩写,中文意思是变更数据获取,flink-cdc的作用是,通过flink捕获数据源的事务变动操作记录,包括数据的增删改操作等,根据这些记录可作用于对目标端进行实时数据同…

通过热敏电阻计算温度(二)---ODrive实现分析

文章目录 通过热敏电阻计算温度(二)---ODrive实现分析测量原理图计算分析计算拟合的多项式系数根据多项式方程计算温度的函数温度计算调用函数 通过热敏电阻计算温度(二)—ODrive实现分析 ODrive计算热敏电阻的温度采用的时B值的…

# 开发趋势 Java Lambda 表达式 第三篇

开发趋势 Java Lambda 表达式 第三篇 一&#xff0c;Lambda 整合集合常规操作 List Java Lambda 表达式可以与List集合和常规操作进行整合&#xff0c;以提供一种更简洁、更可读的代码编写方式。以下是几个示例&#xff1a; 集合遍历操作&#xff1a; List<String> n…

超声波清洗机频率如何选择?高频和低频有什么区别

超声波清洗原理就是在清洗液中产生“空化效应”&#xff0c;即清洗液产生拉伸和压缩现象&#xff0c;清洗液拉伸时会产生大量微小气泡&#xff0c;清洗液压缩时气泡会被压碎破裂。这些气泡产生和破裂的局部压强可达到上千个大气压的冲击力&#xff0c;这种极强大的压力足以使得…

HBuilder打包的安卓app开屏页广告如何关闭

HBuilder打包的安卓app开屏页广告如何关闭 如上图所示&#xff0c;在打包安卓app时会默认勾选 基础开屏广告 而且无法取消 解决办法 1. 登陆 uni-ad广告联盟 网站 2. 访问广告设置链接 3. 4. 选择你的项目 5. 6. 7.

二叉排序树(BST)

二叉排序树 基本介绍 二叉排序树创建和遍历 class Node:"""创建 Node 节点"""value: int 0left Noneright Nonedef __init__(self, value: int):self.value valuedef add(self, node):"""添加节点node 表示要添加的节点&quo…

Linux高性能编程学习-TCP/IP协议族

一、TCP/IP协议族结构与主要协议 分层&#xff1a;数据链路层、网络层、传输层、应用层 1. 数据链路层 功能&#xff1a;实现网卡驱动程序&#xff0c;处理数据在不同物理介质的传输 协议&#xff1a; ARP&#xff1a;将目标机器的IP地址转成MAC地址RARP&#xff1a;将MAC地…

json-server工具准备后端接口服务环境

1.安装全局工具json-server&#xff08;全局工具仅需要安装一次&#xff09; 官网&#xff1a;json-server - npm 点击Getting started可以查看使用方法 在终端中输入yarn global add json-server或npm i json-server -g 如果输入json-server -v报错 再输入npm install -g j…