pytest多重断言插件-pytest-assume

最近准备废弃之前用metersphere做的接口自动化,转战pytest了,先来分享下最近接触到的一个插件:pytest-assume。

在使用这个插件之前,如果一个用例里面有多个断言的话,前面的断言失败了,就不会去执行后面的断言:

b5cff06342089cc466588a6d2ba5b633.png

接下来,看看如何使用pytest-assume插件来实现多重断言。

插件安装:

`pip install pytest-assume -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com`  
  or   
  `pip install pytest-assume`

使用demo:

import pytest




@pytest.mark.parametrize(('x', 'y'), [(1, 1), (1, 0), (0, 1)])
def test_simple_assume(x, y):
    pytest.assume(x == y)
    pytest.assume(x > y)
    pytest.assume(x < y)

代码运行后,可以看到就算前面的断言失败了的话,后面的断言也会继续执行:

e43abaf7b82b6e152c97a0c3ca4f7e85.png

另外一种等价的写法:

import pytest
from pytest import assume




@pytest.mark.parametrize(('x', 'y'), [(1, 1), (1, 0), (0, 1)])
def test_simple_assume(x, y):
    with assume: assert x == y
    with assume: assert x > y
    with assume: assert x < y

注意:每一个断言要用一个with assume,如果在一个with assume下面写多个断言的话,前面的断言失败后,后面的断言就不会执行

import pytest




def test_simple_assume():
    a = -1
    b = 2
    c = 3


    with pytest.assume:
        assert a > 0
        assert b > 0
        assert c < 0

停了好久没更新了,最近会找回学习的状态,更多的笔记会记录到https://xiaobotester.readthedocs.io/ 博客中。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vite+vue3图片引入方式不生效解决方案

vitevue3图片引入方式不生效解决方案 引入方式改成 const wordImgnew URL(/src/assets/MicsosoftWord.png,import.meta.url).href;原理

Pycharm的下载安装与汉化

一.下载安装包 1.接下来按照步骤来就行 2.然后就能在桌面上找到打开了 3.先建立一个文件夹 二.Pycharm的汉化

Unity--自动版面(Horizontal Layout Croup)||Unity--自动版面(Vertical Layout Group)

Unity--自动版面&#xff08;Horizontal Layout Croup&#xff09; Horizontal Layout Croup&#xff1a; “水平布局组”组件将其子布局元素并排放置。它们的宽度由各自的最小&#xff0c;首选和灵活的宽度决定&#xff0c;具体取决于以下模型&#xff1a; 所有子布局元素的…

python模块和包概念与使用

python模块和包概念与使用 Python模块与包的关键概念 在Python编程中&#xff0c;模块和包是代码组织和管理的基石。以下是关于Python模块与包的核心要点&#xff1a; 模块&#xff1a; 模块是一个包含Python代码的.py文件&#xff0c;它可以定义函数、类、变量等。通过导入模…

● 70. 爬楼梯 (进阶)● 322. 零钱兑换 ● 279.完全平方数

● 70. 爬楼梯 &#xff08;进阶&#xff09; 题目&#xff1a;57. 爬楼梯 题目描述&#xff1a; 根据示例&#xff1a; 可知1到m的阶数可以重复选择&#xff0c;跳了1阶之后还能跳一阶&#xff0c;所以是完全背包&#xff0c;又因为考虑了顺序问题&#xff0c;所以是完全背包的…

排序(4)——堆排序

目录 堆排序&#xff08;回顾&#xff09; 基本思路 代码实现 向下调整排序 AdjustDown 建堆排序 时间复杂度 特性总结 堆排序&#xff08;回顾&#xff09; 重点回顾戳&#x1f449;堆排序 基本思路 堆排序(Heapsort)是指利用堆积树&#xff08;堆&#xff09;这种数…

备战蓝桥杯---动态规划的一些思想1

话不多说&#xff0c;直接看题&#xff1a; 目录 1.双线程DP 2.正难则反多组DP 3.换个方向思考&#xff1a; 1.双线程DP 可能有人会说直接贪心&#xff1a;先选第1条的最优路径&#xff0c;再选第2条最优路径。 其实我们再选第1条时&#xff0c;我们怎么选会对第2条的路径…

【leetcode】有效的括号

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家刷题&#xff0c;如果你觉得我写的还不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 点击查看题目 思路: 实现栈在上个博客中已经写过&#xff0c;在这就不在赘述 点击进入博客&#xff1a;【数…

vscode如何远程到linux python venv虚拟环境开发?(python虚拟环境、vscode远程开发、vscode远程连接)

文章目录 1. 安装VSCode2. 安装扩展插件3. 配置SSH连接4. 输入用户名和密码5. 打开远程文件夹6. 创建/选择Python虚拟环境7. 安装Python插件 Visual Studio Code (VSCode) 提供了一种称为 Remote Development 的功能&#xff0c;允许用户在远程系统、容器或甚至 Windows 子系统…

LeetCode 2368.受限条件下可到达节点的数目:搜索 + 哈希表

【LetMeFly】2368.受限条件下可到达节点的数目&#xff1a;搜索 哈希表 力扣题目链接&#xff1a;https://leetcode.cn/problems/reachable-nodes-with-restrictions/ 现有一棵由 n 个节点组成的无向树&#xff0c;节点编号从 0 到 n - 1 &#xff0c;共有 n - 1 条边。 给…

Leetcoder Day35| 动态规划part02

62.不同路径 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff…

腾讯云幻兽帕鲁游戏存档迁移教程,本地单人房迁移/四人世界怎么迁移存档?

腾讯云幻兽帕鲁游戏存档迁移的方法主要包括以下几个步骤&#xff1a; 登录轻量云控制台&#xff1a;首先&#xff0c;需要登录到轻量云控制台&#xff0c;这是进行存档迁移的前提条件。在轻量云控制台中&#xff0c;可以找到接收存档的服务器卡片&#xff0c;并点击进入实例详情…

2023年12月CCF-GESP编程能力等级认证Scratch图形化编程四级真题解析

一、单选题(共15题,共30分) 第1题 现代计算机是指电子计算机,它所基于的是( )体系结构。 A:艾伦图灵 B:冯诺依曼 C:阿塔纳索夫 D:埃克特-莫克利 答案:B 第2题 默认小猫角色,执行下列程序,以下说法正确的是? ( ) A:舞台上会出现无数个小猫 B:舞台只会出现…

k8s的adm方式部署

1 k8s kubeadm搭建 1.1 k8s kubeadm搭建步骤 kubeadm init 在使用kubeadm方式安装k8s集群是&#xff0c;可根据初始化配置文件或配置参数选项快速的初始化生成一个k8s的master管理平台 kubeadm join 根据kubadm init初始化的提示信息快速的将一个node节点或其他的master节…

新项目,Linux上一键安装MySQL,Redis,Nacos,Minio

大家好&#xff0c;我是 jonssonyan 分享一个我的一个开源项目&#xff0c;这是一个在 Linux 平台上一键安装各种软件的脚本项目&#xff0c;脚本使用 Shell 语言编写&#xff0c;后续还会增加更多软件的一键安装&#xff0c;代码在 GitHub 上全部开源的&#xff0c;开源地址如…

scrapy 中间件

就是发送请求的时候&#xff0c;会经过&#xff0c;中间件。中间件会处理&#xff0c;你的请求 下面是代码&#xff1a; # Define here the models for your spider middleware # # See documentation in: # https://docs.scrapy.org/en/latest/topics/spider-middleware.html…

Java构造方法总结(很清晰)

构造方法扫盲&#xff1a;构造方法就是为了创建对象的 解释&#xff1a;真正创建对象的是 new 这个关键字&#xff0c;Java 虚拟机在创建对象时是有很多步骤的&#xff0c;构造方法只是其中的一步&#xff0c;它的作用是进行成员变量初始化。

怎么优雅地访问ChatGPT

ChatGPT&#xff0c;这颗璀璨的智能结晶&#xff0c;在2022年岁末之际&#xff0c;由OpenAI实验室倾力铸就&#xff0c;犹如夜空中跃动的智慧星辰&#xff0c;点亮了人工智能领域的新纪元。犹如汪洋中的一座灯塔&#xff0c;ChatGPT以其独特的智慧光辉引人注目&#xff0c;然而…

mTLS: openssl创建CA证书

证书可以通过openssl或者keytool创建&#xff0c;在本篇文章中&#xff0c;只介绍openssl。 openssl 生成证书 申请操作流程 生成ca证书私钥, 文件名&#xff1a;ca.key生成ca证书&#xff0c;文件名&#xff1a;ca.crt生成Server/Client 证书私钥&#xff0c;文件名&#x…

<网络安全>《63 微课堂<第3课 旁路部署和串行部署是什么?>》

1、串联和并联概念 串联和并联是物理学上的概念。 串联电路把元件逐个顺次连接起来组成的电路。如图&#xff0c;特点是&#xff1a;流过一个元件的电流同时也流过另一个。 并联电路把元件并列地连接起来组成的电路&#xff0c;如图&#xff0c;特点是&#xff1a;干路的电流…
最新文章