pytest如何改变用例的执行顺序

在pytest测试框架,收集用例时默认是按照py文件中用例编写的顺序来收集用例,再执行,再生成测试报告。通过重写收集的钩子函数来改变用例的排序规则从而改变用例执行顺序

如何编写改变用例执行顺序的钩子函数?

官方文档中有说明,通过pytest_collection_modifyitems来修改用例的收集顺序,默认传一个session,configitems参数

 在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钩子函数来制定自己想要的规则就好了。

 

posted @   夏大帅  阅读(428)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
点击右上角即可分享
微信分享提示