1、fixture 介绍
1、pytest 提供的 fixture 实现 unittest 中 setup/teardown 功能,可以在每次执行case之前初始化数据。
2、区别:fixture 可以只在执行某几个特定 case 前运行,只需要在运行 case 前调用即可。比setup/teardown 使用起来更灵活。
2、fixture scope 作用范围
先看下 fixture 函数的定义:
def fixture(scope="function", params=None, autouse=False, ids=None,
name=None):
''''''
:arg scope: 可选四组参数:function(默认)、calss、module、package/session
:arg params: 一个可选的参数列表,它将导致多个参数调用fixture函数和所有测试使用
它。
:arg autouse: 如果为True,则fixture func将为所有测试激活可以看到它。如果为
False(默认值),则需要显式激活fixture。
:arg ids: 每个参数对应的字符串id列表,因此它们是测试id的一部分。如果没有提供
id,它们将从参数中自动生成。
:arg name: fixture的名称。 这默认为装饰函数的名称。 如果fixture在定义它的同
一模块中使用,夹具的功能名称将被请求夹具的功能arg遮蔽; 解决这个问题的一种方法是将装饰函数
命名 “fixture_ <fixturename>”然后使用”@ pytest.fixture(name
='<fixturename>')”。