前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >pytest多重断言插件-pytest-assume

pytest多重断言插件-pytest-assume

作者头像
小博测试成长之路
发布2024-03-06 15:53:36
810
发布2024-03-06 15:53:36
举报
文章被收录于专栏:软件测试学习软件测试学习

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

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

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

插件安装:

代码语言:javascript
复制
  `pip install pytest-assume -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com`  
  or   
  `pip install pytest-assume` 

使用demo:

代码语言:javascript
复制
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)

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

另外一种等价的写法:

代码语言:javascript
复制
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下面写多个断言的话,前面的断言失败后,后面的断言就不会执行

代码语言:javascript
复制
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/ 博客中。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小博测试成长之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档