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

使用coverage生成覆盖率报告出现(builtin)无源代码错误如何忽略

报错原因

No source for code: '/home/zz/work/cnn/tests/(builtin)' 报错是因为两次coverage run指定了不同的源码目录,合并数据后coverage会尝试匹配所有执行过的代码的源文件,其中Python内置模块没有对应的本地源码文件,就会触发该错误。

解决方案

方法1:临时命令行参数(单次生效)

直接在report命令后添加-i(--ignore-errors的缩写)忽略源文件找不到的错误即可:

coverage report -m --skip-empty -i

如果需要生成HTML格式的覆盖率报告,同理添加参数即可:

coverage html -i

方法2:配置文件永久生效

不用每次手动加参数,在项目根目录新建对应配置文件即可:

用.coveragerc配置(最常用)

[run]
# 统一指定要统计覆盖率的源码目录,避免额外扫描内置/第三方代码
source =
    HelloCNN1
    HelloCNN2

[report]
# 自动忽略源文件找不到的错误
ignore_errors = True
# 保留你原来的跳过空文件配置
skip_empty = True

配置完成后直接执行原来的命令即可,不需要加额外参数:

coverage run test_hellocnn1.py
coverage run test_hellocnn2.py
coverage combine
coverage report -m

用pyproject.toml配置

如果你的项目用pyproject.toml管理配置,添加以下内容:

[tool.coverage.run]
source = ["HelloCNN1", "HelloCNN2"]

[tool.coverage.report]
ignore_errors = true
skip_empty = true

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:36:03