pytest.fixtures 的语法如下:
fixture(scope="function", params=None, autouse=False, ids=None, name=None)
其中,fixture 的 5 个参数如下。
scope:用于控制 fixture 的作用范
这个参数有以下四个级别:
function:在每一个 function 或者类方法中都会调用(默认)。
class:在每一个类中只调用一次。
module:每一个 .py 文件调用一次;该文件内可以有多个 function 和 class。
session:一个 session 调用一次。
params:一个可选的参数列表
params 以可选的参数列表形式存在。在测试函数中使用时,可通过 request.param 接收设置的返回值(即 params 列表里的值)。params 中有多少元素,在测试时,引用此 fixture 的函数就会调用几次。
autouse:是否自动执行****设置的 fixtures
当 autouse 为 True 时,测试函数即使不调用 fixture 装饰器,定义的 fixture 函数也会被执行。
ids:指定每个字符串 id
当有多个 params 时,针对每一个 param,可以指定 id,这个 id 将变为测试用例名字的一部分。如果没有提供 id,则 id 将自动生成。
name:fixture 的名称
name 是 fixtures 的名称, 它默认是你装饰的那个 fixture 函数的名称。你可以通过 name 参数来更改这个 fixture 名称,更改后,如果这个 fixture 被调用,则使用你更改过的名称即可。