问题现象:
使用pytest运行用例时,用例执行完毕总会提示以下警告
警告意思:弃用警告:从collections中导入ABCs已被弃用,并在python3.9中将停止工作,可使用collections.abc代替它进行使用
但我代码中并未使用这个库,也没有导入这个库。就很纳闷
解决:
百度了一下解决方法,总结一下:
1、-p no:warnings
在执行pytest用例的时候,跟上-p no:warnings参数,即可忽略警告
但每次执行都要打这个参数很麻烦,那么可以在pytest测试用例文件夹根目录新建一个pytest.ini,输入以下内容,定义全局运行用例,忽略警告
[pytest]
addopts = -p no:warnings
2、修改源码
但我使用pytest插件xidst里的--looponfail,发现上面方法忽略警告并没有生效,反正warning都提示调用代码文件和行数了,那么直接点击提示路径修改源码吧
发现第8行是调用,第5行是导入,那么要改的就这2处,统统改成collections.abc
那么重新执行pytest的测试用例,完美解决。没有警告。踩个坑记录下
- collections DeprecationWarning 39 from deprecatedcollections deprecationwarning 39 from deprecationwarning pkg_resources deprecated event deprecationwarning deprecated on_event 39 userwarning deprecated pretrained collections import mappingimporterror from tokenizer_from_json 39 from preprocessing 39 builderexception collection ambiguous 39 importerror collections iterable deprecationwarning desired_capabilities deprecationwarning capabilities