pytest 前后置 fixture装饰器

pytest.fixture
pytest框架有一种通过装饰器实现的夹具机制。


1. 定义


通过装饰器 @pytest.fixture 可以定义

@pytest.fixture
def fixture_func():
print('前置条件')
yield
print('后置条件')

 

2.调用夹具


在测试用例上调用夹具有两种方式
1. 通过装饰 @pytest.mark.usefixtures(fixture_name)

@pytest.mark.usefixtures("fixture_func")
def testsomething():
print('开始测试')

2. 通过在测试函数中定义与夹具函数名同名的参数
这种方式还可以接收夹具的返回值

@pytest.fixture
def db():
import pymysql
with pymysql.connnect() as conn:
yield conn
@pytest.mark.usefixtures("fixture_func")
def testa(db):
cursor = db.cursor()
cursor.execute('select * from student')
assert cursor.fetch_one()

3. 夹具的作用范围


通过@pytest.fixture装饰器的参数scope可以指定夹具的作用范围
scope的取值有:
function 默认范围,函数范围,在测试完成后结束
class 在类中最后一个测试完成后结束
module 在模块中最后一个测试完成后结束
package 在包中的最后一个测试完成后结束
session 在一次会话中的最有一个测试完成后结束

 

4. 共享夹具


如果一个夹具需要被多个测试文件使用,则可以将其移至一个conftest.py文件中,不需要在测试中导
入,它会自动被发现。


5.使用夹具的夹具


除了可以在测试函数中使用夹具外,夹具功能还可以使用其他的夹具。这有助于夹具的模块化设计,并
允许在许多项目中重复使用特定的夹具。
注意夹具的使用只能是使用范围更广的夹具,反过来不行。模块级别的夹具不能使用类级别的夹具。

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值