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