【三种办法解决】pytest运行测试用例时,出现 E fixture xxx not found的报错
·
背景:在学习UI自动化的时候,运用pytest运行器运行用例时,报python 运行时出现fixture xxx not found的错误
E fixture 'XXX' not found
> available fixtures: cache, capfd, capfdbinary, caplog, capsys, capsysbinary, doctest_namespace, monkeypatch, pytestconfig, record_property, record_testsuite_property, record_xml_attribute, recwarn, tmp_path, tmp_path_factory, tmpdir, tmpdir_factory
> use 'pytest --fixtures [testpath]' for help on them.
现在网上目前有两种方法解决:
方法一:
文件中存在以test或者包含test的py文件、类名、方法名、函数名。
解决方法:
把包含test或者包含test的py文件、类名、方法名、函数名修改成非test的名字
个人意见:
如果运行的本来就是用例,我把test函数名改了,pycharm不就识别不到用例了吗,所以这个方法并不适合
关于pytest的用例识别与运行,推荐这微博主的这篇文章:
pytest用例识别与运行_Tim8709的博客-CSDN博客
方法二:
pycharm环境变量选择错误
首先python路径下得有pytest
然后需要在设置中选择pytest运行器
个人意见:
并没有什么作用,因为运行用例时肯定是用到了pytest运行器才会出现fixture xxx not found报错,如果没有用到pytest运行器的话,pycharm就识别不到用例,而用例如果不被单独被调用的话并不会执行,所以就不存在报错了,所以这种方法对于运行测试用例来说并没有作用。
方法三:
回头再看看pytest用例识别:
既然我们能改变Test开头的类名,也不能改变test——开头的方法名,那我们可以试试把以test_开头的用例所在的py文件改成以_test结尾,试试效果
神奇的事情发生了,用例成功运行起来。
总结:
这种方法只针对我个人的这种情况,其中的问题应该还是pytest的原因。
如果大家试过以上三种办法之后依然没有效果,欢迎私信探讨,当然,如果大家有更好的办法也欢迎留言分享,一起学习,共同进步。
更多推荐
所有评论(0)