pytest-fixture执行顺序
作用域-scope
作用域越大,越先执行,session>package>module>class>function。
是否自动调用fixture
自动调用(autouse=True)优先,手动调用(autouse=False)后执行。
fix_b、fix_c自动调用先执行,fix_a手动调用后执行。
同是自动调用,存在于相同文件
根据fixture函数名称排序。
同是自动调用,存在于不同文件
- 相同作用域下,外层conftest.py里的fixture优先执行,内层conftest.py里的fixture后执行。
- 在conftest.py里的fixture优先执行,在test用例里的后执行。
同手动调用
同手动调用时,根据用例方法中fixture填写顺序。
fixture依赖关系
相同作用域下,相对于依赖了其他fixture的fixture,被依赖的fixture优先执行。
fix_c通过被fix_a依赖而执行,fix_a由于名称原因比fix_b先执行,所以顺序为fix_c>fix_a>fix_b。
注意:作用域大的不可依赖作用域小的,否则报错ScopeMismatch。
总结
优先根据作用域排序,其次看是否为自动调用,最后再判断是否有依赖
本文作者:强哥不强
本文链接:https://www.cnblogs.com/roronoazoro77/p/16584613.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步