6

我正在使用 pytest 在 Python 包中运行测试,我想知道作为测试的一部分执行的任何代码是否会引发弃用警告(当所有测试都通过时)。有谁知道这样做的方法?

4

2 回答 2

1

编码

import warnings
warnings.simplefilter("error")

会将(所有)警告变成错误,这可能会有所帮助。

或者,您可以使用以下命令获取生成的警告列表

import warnings

with warnings.catch_warnings(record=True) as w:
    warnings.warn("deprecated", DeprecationWarning)
    print(w)

#>>> [<warnings.WarningMessage object at 0x7fee80484f50>]

然后在该列表上断言。

于 2013-09-20T16:35:03.147 回答
1

从 pytest 3.1 开始,警告会在会话结束时自动显示:请参阅https://docs.pytest.org/en/latest/warnings.html

于 2017-10-06T11:22:00.207 回答