pytest fixture

Fixture终结/执行teardown代码

pytest支持当fixture超出范围时执行指定的终结代码。通过接受一个request对象在你的fixture函数中,你可以调用它的request.addfinalizer一次或多次。

# content of conftest.py

import smtplib
import pytest

@pytest.fixture(scope="module")
def smtp(request):
    smtp = smtplib.SMTP("smtp.gmail.com")
    def fin():
        print ("teardown smtp")
        smtp.close()
    request.addfinalizer(fin)
    return smtp  # provide the fixture value
当在模块中最后一个使用fixture的test被执行完毕后,fin函数会被执行。
让我们执行它:

$ py.test -s -q --tb=no
FFteardown smtp

2 failed in 0.12 seconds
我们可以看到当两个test执行结束后,smtp实例被终结。

本文翻译自:pytest官网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值