1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

pytest多文件执行顺序控制详解

pytest测试用例执行顺序控制

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

pytest多文件执行顺序控制详解

本文主要介绍了如何控制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