Pytest fixture 参数详解及使用

发布时间 2023-06-28 14:49:20作者: *默九九*

scope:控制fixture的作用范围,默认取值function,控制范围排序:session > module > class > function

-session,会话级,是多个文件调用一次,可以跨.py文件调用,每个.py文件就是module

-module,模块级,每一个.py文件调用一次,该文件内又有多个function和class

-class,类级别,每一个类调用一次,一个类中可以有多个方法

-function,函数级,每一个函数或方法都会调用

 

作用范围举例:

 -function:

-class:

-module:

-session:

 

params:fixture的可选形参,支持列表传入

默认None

fixture都会调用执行一次,类似for循环

可与参数ids一起使用,作为每个参数的标识,详见ids

被Fixture装饰的函数要调用是采用:request.param(固定写法)

 

ids:用例标识id,与params配合使用,一对一关系

 

autouse:默认False,若为True,则每个测试函数都会自动调用该fixture,无需传入fixture函数名

调用fixture的几种方式:

1、函数或类里面方法直接传fixture的函数参数名称

2、使用装饰器@pytest.mark.usefixtures()修饰

3、autouse=True自动调用,无需传仍何参数,作用范围跟着scope走

 

Name:fixture重命名

通常来说使用 fixture 的测试函数会将 fixture 的函数名作为参数传递,但是 pytest 也允许将fixture重命名

如果使用了name,那只能将name传入,函数名不再生效