为了制作可重复使用的夹具,我们用特殊的装饰器标记一个函数:
@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?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)