unittest 和 pytest 的区别

一、用例编写规则

1、unittest提供了test_cases、test_suites、test_fixtures、test_runner相关的类,让测试更加明确、方便、可控,使用unittest编写用例,必须遵守以下规则:

(1)、测试文件必须先 import unittest

(2)、测试类必须继承 unittest TestCase

(3)、测试方法必须以 test_开头

(4)、测试类必须要有 unittest.main() 方法

2、pytest 是python的第三方测试框架,是基于unittest 的扩展框架,比 unittest 更简洁、更高效。使用 pytest 编写用例,必须遵守以下规则:

(1)、测试文件必须以 test_ 开头或者 _test 结尾

(2)、测试方法必须以 test_ 开头

(3)、测试类命名以 Test 开头

二、用例前置和后置

1、unittest 提供 setup / tearDown,每个用例运行前 / 结束后运行一次,setupclass 和 tearDownclass,用例执行前、结束后,只执行一次

2、pytest 提供了模块级、函数级、类级、方法级的 setup / teardown,比 unittest 的 setup / tearDown 更灵活

三、报告

1、unittest 使用 HTMLTestRunnerNew 库

2、pytest 有 pytest-HTML,allure 插件

四、断言

1、unittest 提供了 assertEqual ,assertln , assertTrue ,assertFalse

2、pytest 直接使用 assert 表达式

五、失败重跑

1、unittest 无此功能

2、pytest 支持用例执行失败重跑,pytest-rerunfailures 插件

六、参数化

1、unittest 需依赖 ddt 库

2、pytest 直接使用 @pytest.mark.parametrize 插件

七、用例分类执行

1、unittest 默认执行全部用例,也能通过加载 testsuit 执行部分用例

2、pytest 可以通过 @pytest.mark 来标记类和方法,pytest.main加入参数(-m)可以只运行标记的类和方法

Original: https://blog.csdn.net/weixin_52022790/article/details/126614159
Author: jjucki
Title: unittest 和 pytest 的区别

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/774383/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 实例:利用python求解线性方程组的几种方法

    0. 问题实例 { 10 x − y − 2 z = 72 − x + 10 y − 2 z = 83 − x − y + 5 z = 42 \left { \begin{alig…

    Python 2023年8月24日
    051
  • 函数的递归

    1.函数的递归的定义 函数的递归调用:是函数嵌套调用的一种特殊形式 具体是指:在调用一个函数的过程中又直接或者间接的调用到本身,是一个死循环,最大递归是1000次,超出之后报错。 …

    Python 2023年11月1日
    060
  • 列表类型

    python中列表(list)用来表示有序可变元素的集合,元素可以是任意数据类型。列表是一种复合数据类型,它是容器结构,可以包含其他类型的数据,在开发过程中会大量应用。 列表的定义…

    Python 2023年11月1日
    047
  • office 2021 最新版详细安装教程,附激活方法

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年10月9日
    045
  • 数据科学库(五 · 二)数字的合并与分组聚合

    1.1 数据合并之join jion() import numpy as np import pandas as pd df1 = pd.DataFrame(np.ones((2,…

    Python 2023年8月22日
    056
  • 使用bar_chart_race绘制动态条形图

    bar_chart_race绘制动态条形图 * – 一、前期准备 – + * 1、官方参考文档 * 2、安装ffmpeg模块 * 3、安装ffmpeg、Im…

    Python 2023年8月8日
    057
  • 基于opencv的人脸识别

    一、需求分析. 1.1 功能与技术需求 1.2 开发环境与运行需求 二、设计过程 2.1 主要技术原理 2.2采用的关键技术 2.3系统设计流程 2.4系统各功能模块 三、 实验运…

    Python 2023年9月30日
    067
  • .NET Core中使用gRPC

    1.什么是gRPC 1.基本介绍 gRPC 一开始由 google 开发,是一款语言中立、平台中立、开源的远程过程调用(RPC)系统,所以叫 g(google)RPC。支持主流开发…

    Python 2023年10月22日
    044
  • Selenium被检测为爬虫,怎么屏蔽和绕过

    Selenium 操作被屏蔽 使用selenium自动化网页时,有一定的概率会被目标网站识别,一旦被检测到,目标网站会拦截该客户端做出的网页操作。 比如淘宝和大众点评的登录页,当手…

    Python 2023年8月2日
    038
  • 数据科学必备Python使用Pandas处理DataFrame数据

    啊哦~你想找的内容离你而去了哦 内容不存在,可能为如下原因导致: ① 内容还在审核中 ② 内容以前存在,但是由于不符合新 的规定而被删除 ③ 内容地址错误 ④ 作者删除了内容。 可…

    Python 2023年8月6日
    047
  • Python第四天–流程控制

    在编程的世界中,流程控制是程序员运行的基础,流程控制决定了程序按照什么样的方式去执行,本节给大家介绍 Python 流程控制相关语法。if 语句if 语句表示如何发生什么样的条件,…

    Python 2023年5月24日
    067
  • 深度学习基础知识②

    np.random.rand()函数 语法: np.random.rand(d0,d1,d2……dn)作用:通过本函数可以返回一个或一组服从”0…

    Python 2023年8月29日
    056
  • python pandas 行转列_pandas行转列、列转行、以及一行生成多行

    楔子 笔者曾经碰到过两种格式的数据,当时确实把我难住了,最后虽然解决了,但是方法不够优雅,而且效率也不高,如果想高效率,那么就必须使用pandas提供的方法。而pandas作为很强…

    Python 2023年8月8日
    086
  • SIFT特征提取和匹配

    import cv2 def sift_kp(image): gray_image = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) sift = …

    Python 2023年10月7日
    041
  • Python 官方研讨会:彻底移除 GIL 真的可行么?

    作者:Łukasz Langa 译者:豌豆花下猫,来源:Python猫 在一年一度的 Python 核心开发者 sprint 会议期间,我们与 Sam Gross 举行了一次会议,…

    Python 2023年5月25日
    0105
  • Selenium4+Python3系列(八) – Cookie、截图、单选框及复选框处理、富文本框、日历控件操作

    我所在的城市昨天出了近20+的阳性案例,但这丝毫没有 ” 影响” 到996的工作时间,当然,也没有影响到我想继续更新文章的决心。 一、cookie常用操作入…

    Python 2023年10月14日
    032
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球