python – 如何在Pytest中规避非调用的fixture?

python – 如何在Pytest中规避非调用的fixture?,第1张

概述Pytest套房拥有出色的灯具特色. 为了制作可重复使用的夹具,我们用特殊的装饰器标记一个函数: @pytest.fixturedef fix(): return {...} 以后可以通过与灯具原始名称匹配的参数名称在我们的测试中使用: def test_me(fix): fix['field'] = 'expected' assert(fix['field'] == ' Pytest套房拥有出色的灯具特色.
为了制作可重复使用的夹具,我们用特殊的装饰器标记一个函数:

@pytest.fixturedef fix():    return {...}

以后可以通过与灯具原始名称匹配的参数名称在我们的测试中使用:

def test_me(fix):    fix['fIEld'] = 'expected'    assert(fix['fIEld'] == 'expected')

虽然我们有时会忘记在参数中指定fixture,并且由于工厂的名称与生成的对象的名称相匹配,因此测试将默默地将更改应用于工厂对象本身:

def test_me():  # notice no arg    fix['this is'] = 'a hell to deBUG'

当然,结果是不可取的.例如,能够为工厂函数添加一些后缀会很好,但pytest.fixture装饰器显然没有覆盖灯具名称的方法.
任何其他建议也足够了.

什么是保护自己免受此类问题的推荐技术?

解决方法 您可以在定义夹具时使用autouse = True,以便在每次夹具开始时调用夹具.此功能已在pytest 2.0中添加.
例如:

import pytest@pytest.fixture(scope='function',autouse=True)def fixture_a():    return 5def test_a():    assert fixture_a == 5

如您所见,我没有必要将fixture声明为test_a中的参数来访问它.

文档:https://docs.pytest.org/en/latest/reference.html#pytest-fixture

代码示例:https://docs.pytest.org/en/latest/fixture.html#autouse-fixtures-xunit-setup-on-steroids

总结

以上是内存溢出为你收集整理的python – 如何在Pytest中规避非调用的fixture?全部内容,希望文章能够帮你解决python – 如何在Pytest中规避非调用的fixture?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197532.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存