【三种办法解决】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的原因。

如果大家试过以上三种办法之后依然没有效果,欢迎私信探讨,当然,如果大家有更好的办法也欢迎留言分享,一起学习,共同进步。

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值