如何解决处理 Python 覆盖率中的 No source for code 错误
我有这个旧的“无代码源”问题的新变体。
"No source for code" message in Coverage.py
这是我看到的错误:
$ coverage report
No source for code: '/home/pauljohn/GIT/projects/ml_grb/grb/packages/grb/tests/C:\Users\G33987\.conda\envs\grb\lib\site-packages\grb\review\review.py'.
Aborting report output,consider using -i.
我在 Linux 中,与 Windows 队友“G33987”在 Git 存储库中工作。如您所见,我当前的工作目录是 /home/pauljohn/GIT/projects/ml_grb/grb/packages/grb/tests
,我使用的虚拟环境在 ~/venv-grb 中。请注意,最奇怪的是它正在我的测试文件夹中寻找一个文件,其中附加了一个队友安装的“grb”包文件夹的完整路径,“C:\Users\G33987.conda...”
我可以添加“-i”标志来忽略问题,但我想理解和修复。
在关于coverage.py 的此问题的其他帖子中,该问题与测试文件夹中存在.coverage
的旧副本或存在*.pyc
文件有关。我已经检查过,我们的 Git 存储库没有跟踪任何 pyc
文件。但是,它错误地跟踪了原始 .coverage
文件。但我们不再跟踪它,我在两次运行之间手动删除了它。
到目前为止,我有这个工作流程
coverage erase
find . -name "*.pyc" -exec rm {} \;
coverage run --source=grb -m pytest .
coverage report
我可以运行 coverage report -i
来忽略问题,并且输出确实提供了我自己的虚拟环境中文件的逐行报告。但我对忽略错误感到厌恶。对队友虚拟环境的引用从何而来?我没有使用 conda 虚拟环境,而是纯 Python 虚拟环境。
Python 3.8.5
coverage 5.5
pytest 6.2.2
py 1.10.0
pluggy 0.13.1
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。