生成Python项目代码覆盖率时遇ConfigError:文件模式含'**/**'报错
排查coverage配置报错:File pattern can't include '/'
问题原因
你遇到的错误是因为coverage版本升级后对通配符语法的校验更严格了。你配置里的**/**site-packages**/**存在冗余的**/**写法——**本身已经可以匹配任意层级的目录结构,叠加/**属于无效的重复通配,新版本coverage会直接抛出配置错误。
修复方案
修改你的coveragerc文件中omit部分的规则,把有问题的行替换成两种合法写法之一:
- 写法1:
**site-packages**/**(保留中间的模糊匹配,去掉开头冗余的/**) - 写法2:
**/site-packages/**(明确匹配任意目录下的site-packages目录)
修改后的完整配置示例:
[run] omit = test/* **/site-packages/** **__init__.py
验证修复
重新执行你原来的pytest命令:
pytest --cov-config=./coveragerc --cov-report html:target/coverage --cov=./
此时应该能正常生成HTML格式的覆盖率报告了。
内容的提问来源于stack exchange,提问作者Piyush Das
相关产品推荐
相关产品推荐

