pytest框架常用的装饰器有哪些

pytest 框架的常用装饰器可按功能分为几大类,核心用途和用法如下:

一、用例标记与筛选
@pytest.mark.自定义标签:最基础的标记方式,比如@pytest.mark.smoke给冒烟用例打标,执行时通过pytest -m smoke就能只运行该类用例,也可组合标记如@pytest.mark.payment+@pytest.mark.regression,实现多维度筛选。
@pytest.mark.parametrize("参数名", 数据列表):实现参数化测试,批量传入不同数据执行同一用例,比如@pytest.mark.parametrize("a,b,result", [(1,2,3), (4,5,9)]),用例会自动遍历数据列表,无需重复编写测试逻辑。

二、用例执行控制
@pytest.mark.skip(reason="跳过原因"):无条件跳过指定用例,适用于暂未开发完成、环境不兼容的场景,比如@pytest.mark.skip(reason="功能暂未上线,暂不测试")。
@pytest.mark.skipif(条件, reason="跳过原因"):条件性跳过,满足条件时跳过用例,比如@pytest.mark.skipif(sys.platform == "win32", reason="仅在Linux环境执行")。
@pytest.mark.xfail(条件, reason="预期失败原因"):标记 “预期失败” 的用例,运行失败时不影响整体测试结果,若意外成功则会触发提醒,比如@pytest.mark.xfail(reason="已知bug未修复,预期执行失败")。

三、固件(Fixture)相关
@pytest.fixture():定义测试固件,用于封装用例的前置 / 后置操作(如初始化数据库、创建测试数据),固件可通过参数传递给用例,也能设置作用域(如scope="module"表示模块级复用)。
@pytest.mark.usefixtures("固件名1", "固件名2"):给测试类或函数批量绑定固件,无需在参数中显式传入,比如给测试类加@pytest.mark.usefixtures("init_db", "clear_data"),类内所有用例都会自动执行这两个固件。

四、进阶执行控制
@pytest.mark.run(order=数字):需安装pytest-ordering插件,指定用例执行顺序,比如@pytest.mark.run(order=1)让该用例优先执行,解决默认按名称排序的局限。
@pytest.mark.raises(异常类型):断言用例必须抛出指定异常才算通过,比如@pytest.mark.raises(ValueError),若用例执行未抛出该异常则判定失败。#软件测试#  #软件测试面试# #软件测试开发面试#
全部评论
大家平时还会用到哪些装饰器,评论区留言
点赞 回复 分享
发布于 12-14 13:46 江苏

相关推荐

昨天 22:00
已编辑
杭州电子科技大学 C++
在以下两个机会之间犹豫,想听听大家的建议:1. 新紫光孵化的初创公司 (紫光占股40%)• 岗位:AI Infra工程师• 工作内容:• 适配并优化主流AI框架(如Megatron、vLLM、Transformers),针对自研GPU芯片开发与调优算子(例如FlashAttention);• 开发性能分析、可视化等工具链,支持PyTorch/TensorFlow的模型转换与量化编译。• 薪资福利:n×15薪,公积金12%,大概率双休。2. 华为半导体业务部(前海思)• 岗位:AI软件开发工程师• 工作内容:基于华为昇腾计算平台,从事CANN(对标CUDA)与PyTorch等框架的对接与开发。• 薪资福利:华为13级,月薪资为基本工资+绩效,公积金5%(按基本工资算)。我个人比较纠结的地方:关于初创公司:• 优点:能深度参与从0到1的产品构建,技术成长空间大;大概率双休,工作与生活较平衡;薪资结构清晰,公积金比例高。• 顾虑:产品尚未量产,未来发展有一定不确定性;公司知名度不高,可能对后续跳槽有影响。关于华为:• 优点:平台大,业务稳定,技术体系完整;华为经历在行业内认可度高。• 顾虑:加班文化可能影响工作与生活平衡;岗位职责较细分,担心长期技术栈过窄,不利于向全面AI Infra方向发展;定级为13级,薪资中含绩效且公积金比例低,对比部分硕士拿到14级,心里略有落差。作为应届生,该如何权衡选择?想听听大家的看法,谢谢!
点赞 评论 收藏
分享
淘天集团-1688用户增长算法资深工程师0x00 我们是谁?一支用算法驱动电商用户增长的核心团队,正以创业心态构建1688下一代智能增长引擎。这里没有墨守成规,只有直面亿级用户场景的挑战与机遇!0x01 你需要做什么?· 打造新一代增长算法体系:深耕LTV预测、广告投放优化、搜广推全链路升级,用模型撬动增长杠杆· 突破传统边界:探索大模型与增长场景的深度融合,研发具备自主决策能力的增长Agent· 从0到1落地闭环:主导从特征挖掘、模型研发到线上部署的全流程,让算法真正产生业务价值0x10 我们期待这样的你:· 熟练掌握深度学习(Transformer/GNN等)的工业级落地,具备大规模模型部署优化经验以及大模型应用经验,愿意全面拥抱AI· 在以下至少一个领域深度实践:1. 用户增长体系(流量分配/LTV/留存优化)2. 广告投放算法(bidding/出价/创意优化)3. 大模型应用(Agent/用户洞察/智能策略)· 具备「用数据说话」的本能,能快速定位问题并设计算法解决方案· 对技术有好奇心,对结果有掌控欲,享受从混沌中建立秩序的过程0x11 加入我们将获得:· 直面亿级用户增长的核心战场,算法成果直接驱动B端生态演进· 大模型+增长的前沿探索场景,打造行业标杆级智能增长系统· 与资深架构师共同攻坚,获得技术视野与工程能力的双重提升---我们正在寻找那些渴望用算法重新定义增长边界的同行者。如果你愿意接受挑战,请带着你最引以为傲的技术思考与我们相遇!
投递淘天集团等公司6个岗位
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务