我正在编写 py.test 程序,考虑以下 py.test 夹具代码:
@pytest.fixture(scope="class")
def my_fixture(request):
def fin1():
print("fin1")
request.addfinalizer(fin1)
def fin2():
print("fin2")
request.addfinalizer(fin2)
执行顺序是什么?我没有在文档中找到任何有关终结器执行顺序的提及。
提前致谢。
我想最简单的方法就是尝试运行你的代码-s
并查看打印发生的顺序。
我建议改为使用收益固定装置,这样您就可以轻松地显式控制拆卸顺序:
@pytest.yield_fixture(scope="class")
def my_fixture():
# do setup
yield
fin1()
fin2()
从 pytest 3.0(即将发布)开始,这也可以通过使用yield
与正常的@pytest.fixture
装饰器,并且将是推荐的拆卸方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)