作用域-scope

作用域越大,越先执行,session>package>module>class>function。
pytest-fixture执行顺序-LMLPHP

是否自动调用fixture

自动调用(autouse=True)优先,手动调用(autouse=False)后执行。
pytest-fixture执行顺序-LMLPHP
fix_b、fix_c自动调用先执行,fix_a手动调用后执行。

同是自动调用,存在于相同文件

根据fixture函数名称排序。
pytest-fixture执行顺序-LMLPHP

同是自动调用,存在于不同文件

  • 相同作用域下,外层conftest.py里的fixture优先执行,内层conftest.py里的fixture后执行。
  • 在conftest.py里的fixture优先执行,在test用例里的后执行。
    pytest-fixture执行顺序-LMLPHP

同手动调用

同手动调用时,根据用例方法中fixture填写顺序。
pytest-fixture执行顺序-LMLPHP

fixture依赖关系

相同作用域下,相对于依赖了其他fixture的fixture,被依赖的fixture优先执行。
pytest-fixture执行顺序-LMLPHP
fix_c通过被fix_a依赖而执行,fix_a由于名称原因比fix_b先执行,所以顺序为fix_c>fix_a>fix_b。

总结

08-14 14:39