pytest如何改变用例的执行顺序
在pytest测试框架,收集用例时默认是按照py文件中用例编写的顺序来收集用例,再执行,再生成测试报告。通过重写收集的钩子函数来改变用例的排序规则从而改变用例执行顺序
如何编写改变用例执行顺序的钩子函数?
官方文档中有说明,通过pytest_collection_modifyitems来修改用例的收集顺序,默认传一个session,config和items参数
在conftest文件中编写:
def pytest_collection_modifyitems(session, config, items): print("打印收集的测试用例对象", items) for i in items: print(i.name) items.sort(key=lambda x: x.name) print("改变默认排序后,打印收集的测试用例对象", items)
在改变case收集规则前打印一次默认收集的用例。通过for循环,打印出每个用例的名称。再通过sort函数来按照用例名称,升序排序后来收集用例。再打印出更改收集规则后case的执行规则。效果图如下。
--测试
默认的执行顺序按照py文件中case编写的顺序执行
修改了用例执行规则后,py文件中case执行顺序。
没修改之前,默认按照py文件中的编写顺序来执行。修改了之后按照修改的排序规则来执行。所以想对case执行顺序做修改的同学,通过 pytest_collection_modifyitems钩子函数来制定自己想要的规则就好了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix