pau*_*n32 8 coverage.py pytest
我有这个旧的“无代码源”问题的新变体。
这是我看到的错误:
$ 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.
Run Code Online (Sandbox Code Playgroud)
我在 Linux 中,与 Windows 队友“G33987”一起在 Git 存储库中工作。如您所见,我当前的工作目录是/home/pauljohn/GIT/projects/ml_grb/grb/packages/grb/tests,我使用的虚拟环境位于 ~/venv-grb 中。请注意,超级奇怪的事情是,它正在我的测试文件夹中查找一个文件,其中附加了队友安装的“grb”包文件夹的完整路径,“C:\Users\G33987.conda...”
我可以添加“-i”标志来忽略问题,但我想理解并修复。
.coverage在有关coverage.py 的此问题的其他帖子中,该问题与测试文件夹中旧副本的存在或*.pyc文件的存在有关。我检查过,我们的 Git 存储库没有跟踪任何pyc文件。然而,它错误地跟踪了原始.coverage文件。但我们不再跟踪它,并且我在运行之间手动删除了它。
到目前为止,我有这个工作流程
coverage erasefind . -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
Run Code Online (Sandbox Code Playgroud)
小智 1
我的解决方案是在运行测试/覆盖率之前删除 .pytest_cache 目录。
就我而言,我相信我在 Windows 中使用 PyCharm,它正在运行测试并使用 Windows 路径写入 .pytest_cache,然后尝试通过 WSL 运行项目构建工具。
我将--cache-clear标志添加到 pytest 以阻止这种情况再次发生。
| 归档时间: |
|
| 查看次数: |
2285 次 |
| 最近记录: |