📜  pytest 忽略警告 (1)

📅  最后修改于: 2023-12-03 15:04:02.246000             🧑  作者: Mango

Pytest 忽略警告

在使用 Pytest 运行测试时,有时候会遇到一些警告信息,而这些警告信息并不是我们所关心的。这时候可以使用 Pytest 提供的 pytest.mark.filterwarnings 标记来过滤掉这些警告信息。

语法
import pytest
import warnings

@pytest.mark.filterwarnings("ignore")
def test_function():
    with warnings.catch_warnings():
        warnings.simplefilter("ignore")
        # 测试代码

其中,pytest.mark.filterwarnings 标记接收一个字符串参数,指定需要忽略的警告信息。参数可以是一条字符串,也可以是多条字符串组成的列表。

该标记适用于函数、类和模块级别的测试。

示例

下面是一个示例,演示如何使用 pytest.mark.filterwarnings 标记来忽略一个特定的警告信息:

import pytest
import warnings

@pytest.mark.filterwarnings("ignore:.*U.*:DeprecationWarning")
def test_function():
    with warnings.catch_warnings():
        warnings.simplefilter("ignore")
        # 测试代码

在这个示例中,我们使用 pytest.mark.filterwarnings 标记来忽略所有 DeprecationWarning 警告中包含 U 字符的信息。

注意事项
  • 这种方式会全局地忽略指定的警告信息,因此需要谨慎使用。
  • 如果您只想忽略一小部分的警告信息,可以将其放在 with warnings.catch_warnings(): 块中,只在该块范围内忽略。