在包含__init__.py的目录运行pytest失败该如何解决?
根目录保留__init__.py时pytest正常运行的解决方案
以下是经过验证的可行方案,可根据自己的项目场景选择:
- 临时指定PYTHONPATH运行
单次执行pytest时手动将当前工作目录加入Python导入路径即可:- Linux/macOS终端执行命令:
PYTHONPATH=. pytest - Windows CMD执行命令:
set PYTHONPATH=. && pytest - Windows PowerShell执行命令:
$env:PYTHONPATH="."; pytest
- Linux/macOS终端执行命令:
- 通过pytest配置文件永久生效
在项目根目录新建pytest.ini配置文件,写入以下内容后,直接运行pytest即可正常执行:[pytest]
pythonpath = . - 修改pytest导入模式
运行时添加--import-mode=append参数,让pytest将当前目录追加到导入路径末尾,避免包识别冲突:pytest --import-mode=append - 调整测试用例导入写法
如果你的根目录本身就是要发布的Python包,可将测试用例中原本import utils的写法,调整为从根包名导入的形式,比如根包名为your_project,就改为from your_project import utils,该方案需要你已将当前项目以可编辑模式安装到环境中(pip install -e .)。
内容的提问来源于stack exchange,提问作者rokpoto.com
相关产品推荐
相关产品推荐

