测试框架pytest教程(9)跳过测试skip和xfail

skip无条件跳过

使用装饰器

python 复制代码
@pytest.mark.skip(reason="no way of currently testing this")
def test_example(faker):
    print("nihao")
    print(faker.words())

方法内部调用

满足条件时跳过

python 复制代码
def test_example():
    a=1
    if a>0:
        pytest.skip("unsupported configuration")

skipif满足条件跳过

python 复制代码
import sys


@pytest.mark.skipif(sys.version_info < (3, 10), reason="requires python3.10 or higher")
def test_function():
    ...

xfail预期失败

装饰器用法

python 复制代码
@pytest.mark.xfail
def test_function():
    ...

内部调用

python 复制代码
def test_function():
    if not valid_config():
        pytest.xfail("failing configuration (but should work)")

参数化时使用skip和xfail

python 复制代码
import pytest


@pytest.mark.parametrize(
    ("n", "expected"),
    [
        (1, 2),
        pytest.param(1, 0, marks=pytest.mark.xfail),
        pytest.param(1, 3, marks=pytest.mark.xfail(reason="some bug")),
        (2, 3),
        (3, 4),
        (4, 5),
        pytest.param(
            10, 11, marks=pytest.mark.skipif(sys.version_info >= (3, 0), reason="py2k")
        ),
    ],
)
def test_increment(n, expected):
    assert n + 1 == expected
相关推荐
ocean210319 分钟前
2025-2026年Java语言及生态面试高频知识点洞察
java·开发语言·面试
2601_9620782324 分钟前
Python接口自动化流程(pytest)
python·pytest·接口自动化·测试框架·断言
2302_11125 分钟前
java时间类型
java·开发语言
小七在进步33 分钟前
类和对象(三)
java·开发语言
夜不会漫长34 分钟前
C++:类和对象(1)
java·开发语言·c++
czt_java38 分钟前
Java文件IO核心知识点总结
java·开发语言
szarron1 小时前
HTOOL‑SA12 + HT06 近场探头组合实操|手持设备工位 EMI 预兼容排查完整流程
运维·服务器·开发语言·网络·射频工程·频谱仪
菜鸟~noob2331 小时前
【电子战】第07篇:多普勒测向【含matlab代码】
android·开发语言·matlab
Wang's Blog1 小时前
Java框架快速入门: Spring Security+OAuth2之跨域处理
java·开发语言·spring