您的位置:首页 > 其它

pytest fixture

2016-03-23 22:17 274 查看
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官网
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: