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

Pytest套房拥有出色的灯具特色.

为了制作可重复使用的夹具,我们用特殊的装饰器标记一个函数:

@pytest.fixture

def 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 5

def test_a():

assert fixture_a == 5

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

标签:python,pytest

来源: https://codeday.me/bug/20190706/1396255.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值