温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

pytest中Fixture errors抛错怎么解决

发布时间:2022-06-02 10:51:33 来源:亿速云 阅读:130 作者:zzz 栏目:开发技术

本篇内容主要讲解“pytest中Fixture errors抛错怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“pytest中Fixture errors抛错怎么解决”吧!

首先,在pytest中,如果一个测试函数中传入了多个fixture函数,那么pytest会尽可能的按线性顺序先后执行。
如果,先执行的fixture函数有问题引发了异常,那么pytest将会停止执行这个测试函数的fixture,并且标记此测试函数有错误。

但是,当测试被标记为有错误时,并不是说这个测试函数的结果失败了,这仅仅意味着测试函数所依赖的fixture有问题,
导致测试函数不能正常进行。

所以,这就引出了另一个值得关注的点:fixture虽灵活好用,切记不要滥用。

在实际应用中,要尽可能的减少不必要的依赖关系。这样的话,测试函数就不会因为其他不相关的问题,导致自己不能正常运行。

结合代码示例,进一步了解:

import pytest
@pytest.fixture
def order():
    return []
@pytest.fixture
def append_first(order):
    order.append(1)
@pytest.fixture
def append_second(order, append_first):
    order.extend([2])
@pytest.fixture(autouse=True)
def append_third(order, append_second):
    order += [3]
def test_order(order):
    assert order == [1, 2, 3]

首先声明,这段代码是可以正常运行的,测试函数test_order也是正常通过的。

假设,不管怎样,在order.append(1)处总会报错。这时候,我们其实无法确定order.extend([2])或order +=[3]是否也有问题。

在append_first报错抛出异常后,pytest就不会继续运行任何的fixture函数了,就连测试函数test_order本身也不会运行。

到此,相信大家对“pytest中Fixture errors抛错怎么解决”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI