当前位置: 首页 > news >正文

pytest中mark的使用

在pytest中,mark(标记)是用于对测试用例进行分类、筛选或附加元数据的重要功能。以下是其核心使用方法:

1. ‌基本标记定义与使用‌

‌注册标记‌:在pytest.ini中预先定义标记(避免运行时警告):

[pytest]
markers =smoke: 冒烟测试用例slow: 执行耗时较长的用例

‌标记测试函数/类‌:

@pytest.mark.smoke
def test_login():assert True@pytest.mark.slow
class TestPerformance:def test_response_time(self):assert True

2. ‌常用内置标记‌

‌跳过测试‌:

@pytest.mark.skip(reason="功能暂未完成")
def test_unimplemented():pass

‌预期失败‌:

@pytest.mark.xfail(reason="已知兼容性问题")
def test_legacy_feature():assert False

3. ‌参数化标记(数据驱动)‌

@pytest.mark.parametrize("input,expected", [(1, 2), (3, 4)])
def test_add_one(input, expected):assert input + 1 == expected

4. ‌自定义标记的筛选‌

命令行执行特定标记的测试:

pytest -m "smoke"          # 只运行冒烟测试
pytest -m "not slow"       # 排除耗时用例
pytest -m "smoke or slow"  # 组合逻辑

5. ‌动态添加标记‌

通过钩子函数动态标记(如根据执行时间):

def pytest_collection_modifyitems(items):for item in items:if "api" in item.nodeid:item.add_marker(pytest.mark.api)

注意事项:
未注册的自定义标记会触发警告,需在pytest.ini中声明。
标记支持继承(类标记会应用到所有方法)。
可通过pytest --markers查看所有可用标记。

http://www.dtcms.com/a/274672.html

相关文章:

  • SpringCloud之Feign
  • 深入探讨大模型的记忆机制及其前沿技术
  • 数据结构与算法——从递归入手一维动态规划【2】
  • 极端高温下的智慧出行:危险检测与救援
  • AI介入电商内容生产,会颠覆品牌运营吗?
  • 打破内网壁垒,轻松实现安防视频的云端汇聚与P2P超低延迟播放
  • 史上最详细Java并发多线程(面试必备,一篇足矣)
  • 进制转换小题
  • 5 大人工智能知识管理工具
  • 冒泡排序和快速排序
  • 云成本优化完整指南:从理论到实践的全方位解决方案
  • 聚焦数据资源建设与应用,浙江省质科院赴景联文科技调研交流
  • Python 异常处理机制详解:try-except 捕获异常
  • 奇哥面试:RabbitMQ工作模式深度剖析与Spring整合MQ
  • C++ auto与 for循环
  • 2022 年 12 月青少年软编等考 C 语言七级真题解析
  • Linux驱动(input子系统)
  • 使用Python将目录中的JPG图片按后缀数字从小到大顺序纵向拼接,很适合老师发的零散图片拼接一个图片
  • 垂直和领域 Agent 的护城河:上下文工程
  • python16——匿名函数
  • 基于RUP的软件过程深度解析:架构师的高效工程框架
  • 73、【OS】【Nuttx】【启动】深入理解 caller-saved 和 callee-saved(上)
  • TypeScript---泛型
  • C语言初阶3-函数
  • 翱翔的智慧之翼:Deepoc具身智能如何赋能巡检无人机“读懂”工业现场
  • 电脑开机显示器不亮是怎么回事 这有解决方法
  • 数据治理到底是什么?搞清这四件事,你就彻底明白了!
  • python的病例管理系统
  • 非栈上格式化字符串漏洞(BSS段上)
  • openbmc pldmd分析(event事件分析)