七、fixture 的用例管理
1. 跳过用例 skip:
当有部分测试用例还没实现,但是又需要先运行整个模块进行调试时,可以使用 skip 跳过指定的某些用例以达到测试通过的效果。
@pytest.mark.skip(reason="指定跳过原因")
def test_case():
pass
有条件跳过某些内容:
@pytest.mark.skipif(sys.version_info[0:3] > (3, 8), reason="python版本高于3.8不执行")
def test_case():
pass
*注意:skipif 中传入的参数既可以是 bool 类型,也可以是 str 类型,如果是 bool 类型必须显示声明 reason 参数,否则报错。如果是 str 类型可以不声明 reason 参数。
2. 标记失败 xfail:
场景:执行 A 测试用例时,该用例执行失败,如果 B 和 C 用例都是依赖于 A 用例,那么可以直接跳过 B 和 C 用例的执行,直接给它标记为 xfail,这样就节省用例执行时间。
@pytest.mark.xfail(condition=False, reason="当前用例对象不存在")
def test_case():
pass
condition=True 且测试用例断言结果失败,运行结果是 xfailed 状态(x)
condition=True 且测试用例断言结果通过,运行结果是 xpassed 状态
3. 重复执行 repeat:
标记重复执行多次测试,目的:复现一些偶然性bug
(1)第一种方式:
@pytest.mark.repeat(count)
def test_case():
pass
pass
(2)第二种方式:
使用 pytest-repeat 模块完成,pytest-repeat 是 pytest 的一个插件,用于重复执行单个用例或多个用例
指令:使用参数 --count 指定重复测试的次数。
pytest --count=10 Test*.py
pytest --count=100 -x Test*.py 运行 100 次,一旦发生故障就会停止
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix