网站开发下载哪个,搜索引擎关键词优化,兰州优秀网站推广,上海优秀设计公司文章目录 前言使用命令行实现过滤未处理警告#xff0c;执行结果升级警告忽略警告忽略警告摘要 使用装饰器实现过滤装饰方法装饰类装饰模块 使用配置文件实现过滤 前言 在 pytest 中执行测试时#xff0c;可能会出现警告#xff0c;这些警告通常是由于代码中存在某些可能导致… 文章目录 前言使用命令行实现过滤未处理警告执行结果升级警告忽略警告忽略警告摘要 使用装饰器实现过滤装饰方法装饰类装饰模块 使用配置文件实现过滤 前言 在 pytest 中执行测试时可能会出现警告这些警告通常是由于代码中存在某些可能导致问题或不符合最佳实践的情况。 警告可能涉及各种方面如未使用的变量、未实现的函数、过时的库用法等。 使用命令行实现过滤 模拟警告的代码示例 import warningsdef test_case_01():print(进入test_case_01函数)# 手动抛出一个警告warnings.warn(UserWarning(手动抛出一个警告))assert 1 1
未处理警告执行结果 执行命令pytest testcase/test_case_01.py -s -v 升级警告 执行命令pytest testcase/test_case_01.py -s -v -W error::UserWarning 忽略警告 执行命令pytest testcase/test_case_01.py -s -v -W ignore::UserWarning 忽略警告摘要 执行命令pytest testcase/test_case_01.py -s -v --disable-warnings 使用装饰器实现过滤 在 pytest 中pytest.mark.filterwarnings 装饰器允许我们向特定的测试项添加警告筛选器以实现对警告的更细粒度控制。 通常Python 的 warnings 模块用于控制警告的输出而 pytest 通过其插件系统集成了对警告的管理。pytest.mark.filterwarnings 装饰器提供了一种方便的方式来为特定的测试函数或方法定义警告筛选器。 我们可以使用 pytest.mark.filterwarnings 来指定 要匹配的警告类别。警告消息的匹配模式。如何处理匹配的警告例如忽略它们或将其转换为错误。 装饰方法 示例代码 import warningsimport pytestdef test_case_01():print(进入test_case_01函数)warnings.warn(UserWarning(手动抛出一个警告信息))assert 1 1# 忽略指定类型的警告信息
# pytest.mark.filterwarnings(ignore::UserWarning)
# 忽略匹配正则表达式的警告信息
pytest.mark.filterwarnings(ignore:.*模拟.*)
def test_case_02():print(进入test_case_02函数)warnings.warn(UserWarning(模拟程序中出现的警告信息))assert 1 1 执行结果 装饰类 示例代码忽略含有自定义的警告 import warningsimport pytestpytest.mark.filterwarnings(ignore:.*自定义.*)
class TestClassDemo2:print(进入类的内部)def test_case_01(self):print(进入test_case_01函数)warnings.warn(UserWarning(意外警告))assert 1 1def test_case_02(self):print(进入test_case_02函数)warnings.warn(UserWarning(自定义警告))assert 1 1def test_case_03(self):print(进入test_case_03函数)assert 1 1 执行结果 装饰模块 示例代码 import warningsimport pytest# 不指定需要忽略的警告类型表示忽略全部警告
# pytestmark pytest.mark.filterwarnings(ignore)
# 忽略匹配正则表达式的警告信息
pytestmark pytest.mark.filterwarnings(ignore:.*自定义.*)def test_case():print(进入test_case函数)warnings.warn(UserWarning(自定义警告))assert 1 1class TestClassDemo2:print(进入类的内部)def test_case_01(self):print(进入test_case_01函数)warnings.warn(UserWarning(意外警告))assert 1 1def test_case_02(self):print(进入test_case_02函数)warnings.warn(UserWarning(自定义警告))assert 1 1def test_case_03(self):print(进入test_case_03函数)assert 1 1 执行结果 使用配置文件实现过滤 pytest.ini配置文件代码 [pytest]
filterwarnings ignoreerror::UserWarning示例代码 import warningsdef test_case():print(进入test_case函数)assert 1 1class TestClassDemo2:print(进入类的内部)def test_case_01(self):print(进入test_case_01函数)warnings.warn(ImportWarning(模拟导入过时模块警告))assert 1 1def test_case_02(self):print(进入test_case_02函数)warnings.warn(RuntimeWarning(模拟运行时警告))assert 1 1def test_case_03(self):print(进入test_case_03函数)warnings.warn(SyntaxWarning(模拟语法警告))assert 1 1def test_case_04(self):print(进入test_case_04函数)warnings.warn(UserWarning(自定义警告))assert 1 1 执行结果