pytest 之skip 跳过某条测试用例执行

前言

相信大家对于pytest 框架官方介绍的那几种跳过用例执行的方法都熟悉并且能够运用在自己的项目中了。但是设想有下面一种场景:使用pytest 框架编写了一个接口的自动化测试,请求体使用了

@pytest.mark.parametrize进行参数化,但突然有一天这个参数化的文件有几条用例需要暂停执行,即在执行这个接口自动化测试的时候需要跳过这几条用例执行,此时该怎么跳过呢?

笔者在官方介绍的几种skip方法里好像都没有找到适合咱们以上场景的,后来想到了一种方法并进行了尝试,结果也行的通。下面就介绍一下,给大家一个参考的方式,当然如果大家还有其他好的方法,欢迎下方评论区留言交流~~

解决

笔者在参数化文件(Excel表格)加了一列表头,status,用来标记用例的状态。如果该条用例的status填的是“禁用”关键字,那么我就跳过该条用例,这样就完美解决上面的问题啦!相应的在自动化脚本里这样修改:如果该条用例的状态不为“禁用”时,就正常执行啦~

data = read_data(base_path + "/testcases/APP/data/app_pay_order.xlsx", ["data"])

@pytest.mark.parametrize("case_name,file_path,params,except_status,except_data,status", data)
def test_APP_pay_order(case_name, file_path, params, except_status, except_data, status):
    if status == "禁用":
        pytest.skip(reason="银商参数用例跳过执行")
    else:
        test_url = base.prod_url
        params1 = json.loads(params)
        pass

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
pytest 中,可以使用 `pytest.mark.skip` 装饰器来跳过某个测试用例。你可以在测试用例函数上添加这个装饰器,当测试用例的某个条件不满足时,pytest 将会跳过这个测试用例,继续执行其他的测试用例。 例如,假设我们有一个测试用例函数 `test_divide_by_zero`,用于测试除以 0 的情况,如果除数为 0,则这个测试用例会抛出 `ZeroDivisionError` 异常。我们可以使用 `pytest.mark.skip` 装饰器来跳过这个测试用例: ```python import pytest def test_divide_by_zero(): with pytest.raises(ZeroDivisionError): 1 / 0 @pytest.mark.skip(reason="除数为 0,暂不支持") def test_divide_by_zero_skip(): with pytest.raises(ZeroDivisionError): 1 / 0 ``` 在这个例子中,我们使用 `pytest.mark.skip` 装饰器来跳过 `test_divide_by_zero_skip` 这个测试用例,同时在装饰器中添加了一个原因,以便更好地说明为什么要跳过这个测试用例。 当我们运行 pytest 时,pytest 将会跳过被 `pytest.mark.skip` 装饰的测试用例,同时输出跳过的原因: ``` $ pytest ============================= test session starts ============================= platform linux -- Python 3.x.y, pytest-6.x.y, py-1.x.y, pluggy-1.x.y rootdir: /path/to/test/directory collected 2 items test_example.py .s [100%] ============================== 1 passed, 1 skipped ============================== ``` 在这个例子中,我们看到 pytest 跳过了 `test_divide_by_zero_skip` 这个测试用例,并且输出了跳过的原因。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值