pytest测试用例执行顺序控制
大家都知道,默认情况下pytest测试用例的执行顺序是先按照外层后内层(目录下的文件),同层级的包或文件、根据名称、按照ascii码升序执行,文件内的用例根据先后顺序执行。

本文主要介绍了如何控制pytest在多个文件中测试用例的执行顺序,以便更好地管理和组织测试用例。
只有一个py文件
如果测试case只存在于单个.py文件中,那么测试case默认从上到下执行,如果使用了pytest-order插件,则按照添加order的测试用例执行。
存在多个py文件
如果测试case存在于多个.py文件中,那么默认是按照文件名的ascii码顺序执行,进入文件后,默认按照从上到下顺序执行每个单元测试接口。
如果在单个.py文件中使用了pytest-order插件,则该文件中添加了order的测试用例将会最先执行。
多个py文件同时使用pytest-order插件
如果多个.py文件使用了pytest-order插件,每个order指定的顺序不冲突,则按照order指定的顺序执行。如果有冲突,则会出现在多个.py文件中交叉执行的现象,可能与预期不符。
以文件名排序
如果想要保证测试用例顺序为:用户模块–>订单模块–>库存模块,则可以通过修改文件名,使得文件名ascii码排序和测试用例执行顺序一致,确保case中没有pytest-order插件。
通过pytest提供的勾子方法控制执行顺序
也可以通过pytest提供的勾子方法pytest_collection_modifyitems,对case执行顺序进行修改。用户只需要将新增的测试模块class按照预期的顺序添加到appoint_classes中即可,简单灵活。
综上所述,通过以上几种方法,就可以控制pytest测试用例的执行顺序了。
原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/7196.html
