pycharm运行py文件时,如何处理E fixture not found的问题?
发布于 作者:苏南大叔 来源:程序如此灵动~
熟悉苏南大叔的文章的读者,可能会发现:最近的一些文章的截图显示:苏南大叔的.py文件已经放到pycharm里面运行了。但是苏南大叔并没有在文章里面特别写明pycharm的事情,直到最近,苏南大叔发现一个只出现在pycharm里面的诡异问题。

苏南大叔的“程序如此灵动”博客,记录苏南大叔的编程经验文章。本文描述在pycharm运行py文件的时候,如何解决E fixture not found的错误提示问题。测试环境:win10,python@3.68,pycharm@2023.2pro,pytest@5.3.2。
本文的测试环境,需要再次强调一下。苏南大叔的电脑里面,确实有两个python,一个是python@3.6.8,另外一个是python@3.11.0。
普通的代码
python代码如下,普通的不能再普通:
def test1(a):
print(a)
test1("aaa")在命令行下面执行,不报错。在vscode里面也可以正常执行。直接在命令行下指明python@3.6.8路径,也不报错。

pycharm下报错
在pycharm下执行上述代码的时候,却报错了。报错信息是:
t9.py::test1 ERROR [100%]
test setup failed
file C:\Users\sunan\Desktop\demo\py\t9.py, line 1
def test1(a):
E fixture 'a' 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.
pytest的原因
究其原因,就是苏南大叔的pycharm配置的interpreter是python@3.68。这个路径下的scripts目录下面有个pytest.exe。

而pytest生效,被默认启动的其中一个场景就是:函数名中带有test字样。这不就是属于刷新认知了么。

临时解决方案
本文仅仅是个临时解决方案,并不完美。毕竟苏南大叔还没有对这个pytest进行系统的研究。所以,临时的解决方案就是:
【方案一】
【方案二】
更换不带pytest的python解释器,比如苏南大叔系统里面的python@3.11.0。


结束语
python博大而精深,更多python经验文章,请点击下面的链接查看: