You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pytest运行coverage生成覆盖率报告提示No source for code:config-3.py报错

问题诱因

该报错由coverage代码统计范围配置不当引发:
执行coverage run时若未显式指定待统计的项目源码范围,coverage会默认记录运行过程中加载的全量.py文件路径。报错信息中的config-3.py是Python运行时、虚拟环境或pytest插件生成的临时桩脚本,不属于项目业务代码,会在进程退出后被自动清理。后续生成覆盖率报告时,coverage无法定位到这个已被删除的临时文件,就会抛出"No source for code"类错误。

修复方法
  • 执行采集命令时显式指定源码统计范围,仅采集项目自身代码目录下的文件,从根源避免纳入临时文件。若项目业务代码存放在根目录的gotcha包下,可将采集命令替换为:
coverage run --source=./gotcha -m pytest tests/
  • 在项目根目录新建.coveragerc配置文件,固定coverage统计规则,无需每次执行命令追加参数,参考配置如下:
[run]
# 替换为实际的项目源码存放目录
source = gotcha
# 配置无需统计的文件匹配规则
omit =
    */tests/*
    */.venv/*
    */site-packages/*
    */tmp/*
    *config-*.py

注意:配置中的source路径不要包含测试用例目录、虚拟环境目录,否则仍可能出现无关文件被纳入统计的问题。

  • 若之前已经执行过采集,生成了损坏的.coverage缓存文件,先执行命令删除旧缓存,再重新走采集、生成报告的流程:
rm .coverage

完成上述配置后,再执行coverage report或coverage html即可正常生成覆盖率报告。

内容的提问来源于stack exchange,提问作者arnino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 09:30:39