关键特性:

1、每个fixtrue可以互相调用,有独立的命名。

2、可以实现unittest不能的实现的功能,比如unittest中的测试用例和测试用例之间是无法传递参数和数据的,但是fixture却可以解决这个问题

3、从简单的单元扩展到复杂的功能测试,允许根据配置和组件选项对fixture和测试用例进行参数化

fixtrue 和 setup/teardown对比

1、setup/teardown是针对测试脚本全局来设置的,不能针对某一个方法来设置

2、fixture命名方式灵活,而setup/teardown,只能使用setup、teardown、setup_method等

3、使用fixture的conftest方式可以跨模块(py文件)来共享前置、后置的数据,而且在调用时不需要导入fixture修饰的方法,即scope="module"方式

4、fixture可以实现多模块(py文件)共用一个session的情况,即scop=session方式

作用范围

1、function:每一个函数或方法都会调用

2、class:每一个类调用一次,一个类中可以有多个方法

3、module:每一个.py文件调用一次,该文件内又有多个function和class

4、session:多个文件调用一次,可以跨.py文件调用(通常这个级别会结合conftest.py文件使用)

更多推荐