解决 PyCharm 中运行 pytest 时遇到的 “fixture ‘XXX‘ not found“ 错误

本文讲述了在PyCharm中开发Python时遇到的测试用例fixture未找到问题,原因是PyCharm默认查找范围不包含较高层级的conftest.py。解决方法是调整运行配置,将工作目录设为项目根目录。
摘要由CSDN通过智能技术生成

        在使用 PyCharm 开发 Python 测试用例时,可能会遇到一个常见的问题:通过界面点击运行按钮执行 test_xxx.py 文件中的测试用例时,出现 “fixture 'XXX' not found” 的错误提示。这个问题可能会让人困惑,尤其是当我们确认已经在项目中定义了相应的 fixture。

问题原因

        经过一番研究,我发现 PyCharm 在界面运行测试用例时,默认会在当前测试文件所在的目录及其子目录中查找 conftest.py 文件,并从中加载 fixtures。如果 conftest.py 位于项目的更高层级目录,PyCharm 就不会自动地找到它。

项目结构

        为了更好地说明问题,来看一下项目的目录结构:

my_project/

├── conftest.py
└── case/
        ├── __init__.py
        └── test_case.py

        在这种情况下,我们的 conftest.py 文件位于 项目 目录下,而 test_case.py 位于 my_project/case/ 目录下。  

解决方法

        解决这个问题非常简单,只需要修改 PyCharm 的运行配置,将“工作目录”设置为项目的根目录路径。通过这样做,PyCharm 会正确地加载 conftest.py 文件,从而找到所需的 fixture。

        以上修改后,再次运行测试,现在应该不会看到 "fixture 'XXX' not found" 的错误了。

注:因为工作时间关系还没深入研究原因,如果有更深入了解此问题原因的朋友,欢迎在留言区分享你的见解。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值