fixture的定义
fixture应用的三种方式
@pytest.fixture()
@pytest.mark_usefixtures()
设置pytest.fixture的参数autouser为True
fixture的作用范围
具有返回值的fixture
pytest实现了和setup/teardown类似的功能,即在测试之前做一些初始化的工作
Example
pytest fixture
fixture的定义
fixture(scope='function', param=None, autouse=False, ids=None, name=None)
fixture的应用有三种方式
1.@pytest.fixture
1>函数式
函数式
2>类式
类式
2.@pytest.mark.usefixtures()
pytest.mark.fixtures
3.指定fixture的参数autouser=True,
这样每个pytest的测试用例都会调用上
autouse = True
fixture实现teardown,利用yield,如最开始图片示例
fixture的作用范围
scope参数可以是session, module, class, function
优先级session>module>class>function
1.session:
会话级别,即多个文件调用一次,可以跨.py文件调用,每个.py文件就是module
2.module
模块级别,模块里面所有用例执行一次module的fixture,即每个.py文件调用一次,该文件可以有多个function和class
3.class
类级别,每个类执行前都会执行一次class级别的fixture
4.function
这个是默认的模式,每个测试用例执行前都会执行一次function级别的fixture
具有返回值的fixture
fixture可以有返回值,默认返回值为None
1.返回单一值
单一值
2.fixture也可以返回多个值,以元组,list或者字典的形式返回
返回元组
3.也可以分为多个fixture,然后在调用用例中传多个fixture参数
多个fixture
Note:
@pytest.mark.fixtures和@pytest.fixture的区别,如果fixture有返回值,那么usefixture就无法获取到返回值