深入了解 Pytest Markers:提升测试用例的组织和控制能力

本文详细介绍了Pytest的Markers特性,包括内置的skip、skipif、xfail和parametrize标记,讲解了它们的用途、参数和使用示例。通过自定义标记,可以更灵活地组织和控制测试用例。了解如何利用Markers提升测试效率和定制化测试流程。
摘要由CSDN通过智能技术生成

前言

从这篇开始,逐一解决fixture是啥?mark是啥?参数request是啥?钩子函数是啥?parametrize参数化是啥?这些问题。本片先介绍一下mark是啥?以及如何使用

Markers有啥用?

当使用 Pytest 运行测试时,可以通过标记(Markers)来为测试函数或类添加自定义的元数据。标记可以用于对测试进行分类、过滤和定制化。

查看所有Markers

pytest --markers

常用的内置标记

内置标记(Built-in Markers): Pytest 提供了一些内置的标记,用于常见的测试场景。一些常用的内置标记包括:

  • @pytest.mark.skip: 标记该测试为跳过;
  • @pytest.mark.parametrize: 标记该测试使用参数化,可以为测试函数指定多组参数;
  • @pytest.mark.xfail: 标记该测试为预期失败;
  • @pytest.mark.skipif: 根据条件动态地跳过某个测试。
  • @pytest.mark.timeout:为测试用例设置运行超时时间。
@pytest.mark.skip

可以设置一个可选参数reason,表明跳过的原因

import pytest
​
@pytest.mark.skip()
def test_01():
    pass

未增加跳过原因,输出内容为

test_demo.py::test_01 SKIPPED (unconditional skip)                       [100%]
Skipped: unconditional skip

我们增加跳过原因,看看输出结果

import pytest
​
@pytest.mark.skip(reason='skip reason')
def test_01():
    pass

执行输出结果如下

test_demo.py::test_01 SKIPPED (skip reason) [100%] Skipped: skip reason

可以看到会直接显示具体原因。

pytest.skip方法

这里我们顺带提一下这个方法。可以在测试执行期间强制跳过

def test_01():
    pytest.skip(reason="skip reason")

另外,还可以为其设置一个布尔型的参数allow_module_level(默认为False),表明是否允许在模块中调用这种方法,如果置为True,则跳过模块中剩余的部分,也就是说其值为True时这个模块中所有测试方法都被跳

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值