如何在pytest中排除测试目录于PYTHONPATH或指定依赖查找路径?
解决pytest测试目录干扰PYTHONPATH的问题
方法1:阻止pytest自动添加测试目录到PYTHONPATH
直接在pytest命令中加入--no-add-pythonpath参数,避免pytest将main_project_a/folder_a/sub_project_a加入PYTHONPATH,让程序优先从预设路径查找依赖:
python -m pytest --no-add-pythonpath main_project_a/folder_a/sub_project_a ...
方法2:手动指定依赖搜索路径
运行pytest前,把build目录下的依赖路径插入PYTHONPATH最前端,确保程序优先加载该路径下的api_2:
export PYTHONPATH=main_project_a/build/sub_project_a/lib/python3.9:$PYTHONPATH python -m pytest main_project_a/folder_a/sub_project_a ...
或者在测试目录下创建conftest.py,在文件开头添加路径配置:
import sys sys.path.insert(0, "main_project_a/build/sub_project_a/lib/python3.9")
方法3:直接使用build中的自定义Python解释器运行测试
既然需要依赖build文件夹内的自定义Python版本,直接调用该解释器执行pytest即可——这个解释器的默认搜索路径已经包含api_2,无需额外配置:
main_project_a/build/sub_project_a/bin/python -m pytest main_project_a/folder_a/sub_project_a ...
内容的提问来源于stack exchange,提问作者YTKme
相关产品推荐
相关产品推荐

