首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >忽略/捕捉单元测试的特定行的警告

忽略/捕捉单元测试的特定行的警告
EN

Stack Overflow用户
提问于 2021-12-11 03:20:29
回答 1查看 209关注 0票数 0

我正在尝试编写一个单元测试,它反复调用一个函数,并测试如果它使用相同的输入多次运行会发生什么。该函数的副产品是,在运行时会发出一些警告。这导致代码如下:

代码语言:javascript
复制
with pytest.warns(RuntimeWarning, match='depends on the pytest parametrization'):
    output = func(**kwargs)

当我使用pytest.mark.parametrize时,这会变得非常冗长,现在它会导致多个if pytest.warns(...)类型的代码。

我是否可以指定忽略单元测试中仅针对特定行发出的所有警告?像这样的事情

代码语言:javascript
复制
with pytest.ignore_all_warnings():
    output = func(**kwargs)

忽略警告的其他方法

我知道pytest可以忽略特定的警告吗?和通常忽略警告的方式,但是那些忽略跨文件和函数的警告。我只想忽略单元测试中特定行中的警告。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-11 07:10:54

Python文档中所述,可以使用catch_warnings上下文管理器将警告筛选器中的更改限制为代码块。如果将它与忽略所有警告的非特定筛选器一起使用,则可以在一行中取消所有警告:

代码语言:javascript
复制
import warnings
...

with warnings.catch_warnings():
    # ignore all warnings
    warnings.filterwarnings('ignore')
    do_stuff()

这并不是pytest特有的,但是可以在任何代码中使用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70312385

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档