Pytest在Travis CI执行失败:无法找到主包
Travis CI 执行 pytest 报 KeyError: local('/home/travis/build/scossu/lakesuperior') 解决思路
刚踩过类似的坑,给你分享几个能快速排查的方向:
同步本地与CI的依赖版本
本地测试正常但CI报错,大概率是依赖版本不一致搞的鬼。老版本的pytest在解析conftest.py路径时存在已知bug,建议你在.travis.yml里指定固定的pytest版本,比如:pip install pytest==6.2.5或者直接把本地的
requirements.txt同步到CI环境,确保所有依赖(包括pytest插件)版本完全匹配。检查
conftest.py的状态
你修改文档的时候有没有误动过conftest.py?比如移动了位置、修改了里面的路径相关代码?Travis CI中pytest会自动扫描项目根目录的conftest.py,如果文件缺失或者路径逻辑出错,就会触发这个KeyError。
可以在Travis构建步骤里加一行调试命令,确认文件存在:ls -la /home/travis/build/scossu/lakesuperior清理Travis CI缓存
CI的缓存有时候会残留旧的配置或依赖文件,导致路径解析混乱。去Travis项目的设置页面找到「Cache」选项,清空所有缓存后重新触发构建,说不定就能解决。确认pytest的执行路径
检查.travis.yml里执行pytest的工作目录是不是项目根目录?如果是进入子目录后才跑的命令,pytest会找不到根目录的配置文件。可以在脚本里明确切换到根目录:script: - cd /home/travis/build/scossu/lakesuperior - pytest
如果还是没解决,建议在Travis构建日志里加pwd和echo $PYTHONPATH命令,看看当前工作路径和Python路径是否正确,能帮你更快定位问题。
内容的提问来源于stack exchange,提问作者user3758232
相关产品推荐
相关产品推荐

