setup/deardown:
缺點:只能在單py文件內生效,沒有全局設置,而且不支持單獨對某一個方法配置。不支持返回值操作。
優點:有后置處理操作。單py文件內可以做到全局配置。
fixture:
缺點:不支持后置處理(fixture前置可通過autouse=True實現,后置可通過yield實現,具體見【注:2】)
優點:支持全局配置,支持單獨按需調用,支持返回值,同時可以參數傳遞
注意:
1、在相同作用域下fixture方法會比setup方法先執行。
2、setup和teardown不是必須成對出現,也可以單獨使用。
3、在使用fixture預處理函數需要獲取返回值時,必須在測試方法中傳入預處理函數名,例如案例中的testC1(before)。
4、Fixture可以同時傳遞參數給測試方法,具體使用可以參考《python系列之初探Pytest(4)-參數傳遞》。
5、如果需要按需調用預處理方法時,在fixture中不要傳入autouse參數或者設置為False,然后在測試方法中傳入預處理函數即可
注意:
1.pytest中setup不能與__init__共存
注:
1.fixture與setup混合使用:https://blog.csdn.net/henglin/article/details/108538301
2.fixture核心使用:https://dongfanger.gitee.io/blog/pytest%E5%8E%9F%E7%94%9F%E6%A1%86%E6%9E%B6/003-%E7%B2%BE%E9%80%9Afixture.html