Pytest测试类方法时跨同级目录导入类出现报错问题
解决方案
首先确认你的项目目录结构如下:
<项目根目录> ├── A/ │ └── 测试用例文件.py └── B/ └── 目标类所在文件.py
方案1:修改测试文件头部代码(无需改运行方式)
- 先在B文件夹下新建空的
__init__.py文件,将B标记为Python可识别的包 - 在测试用例文件的最开头加入以下代码,将项目根目录添加到Python导入搜索路径:
import sys import os # 两次调用dirname获取当前文件所在目录的上级目录(即项目根目录) sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
- 之后按正常方式导入B中的类即可,示例导入写法:
from B.目标类所在文件名 import 类名
方案2:调整运行命令(无需修改代码)
不要在A文件夹内运行测试文件,切换到项目根目录后,以模块方式运行测试:
python -m A.测试用例文件名
注意:测试用例文件名不要带.py后缀
方案3:配置环境变量(长期生效)
将你的项目根目录的绝对路径添加到系统PYTHONPATH环境变量中,配置完成后所有Python程序都可以直接搜索到该目录下的所有包,无需每次额外配置路径。
内容的提问来源于stack exchange,提问作者Tilani Gallege
相关产品推荐
相关产品推荐

