pytest中Fixture抛错该如何处理,正确做法是什么
Admin 2022-08-13 群英技术资讯 433 次浏览
既然fixtures函数也是咱们自己写的,那难免会发生异常,当fixture函数异常后,pytest中如何处理呢?
首先,在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本身也不会运行。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
熬夜整了了11种Numpy的高级操作,每一种都有参数解释与小例子辅助说明。文中的示例代码讲解详细,感兴趣的小伙伴快跟随小编一起学习一下吧
本文主要介绍了Python绘制多因子柱状图的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
python在 Python 中字符串也可以使用三个单引号或三个双引号来表示字符串,这样字符串中的内容就可以多行书写,并且被多行输出。
Python语言有许多优点,常用于不同的领域,如数据科学、web开发、自动化运维等。本文将学习如何使用字符串中内置的方法来格式化字符串,感兴趣的可以了解一下
可以通过两种方法利用python读取大文件:第一种是利用yield生成器读取;第二种是:利用open()自带方法生成迭代对象,这个是一行一行的读取。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008