Jest测试覆盖率异常问题及sub.js条目移除咨询
解决Jest覆盖率报告中移除未引入无测试模块的问题
移除sub.js这类条目的两种配置方法
精准指定统计范围:在
jest.config.js里用collectCoverageOnlyFrom配置,只把需要统计覆盖率的文件纳入范围,这样sub.js这类既没被用到也没测试的文件就不会出现在报告里了。
配置示例:module.exports = { collectCoverageOnlyFrom: { './sum.js': true, './toNum.js': true }, // 其他Jest配置... };直接排除目标文件:如果有多个类似sub.js的文件,用
coveragePathIgnorePatterns配置忽略它们,支持单个文件名或批量路径规则。
配置示例:module.exports = { coveragePathIgnorePatterns: [ './sub.js' // 还可以添加如 './src/unused/*.js' 的规则,忽略整个目录的未用文件 ], // 其他Jest配置... };
补充说明
- 关于sub.js分支覆盖率显示100%:因为Jest完全没执行这个文件的代码,统计逻辑会把无分支执行的情况默认判定为100%分支覆盖率,直接排除这类文件就能解决该异常显示问题。
- 关于被引入但无测试的模块显示100%覆盖率:比如toNum.js被sum.js引入并执行了部分代码,Jest只会统计已执行的代码片段。如果要得到这个模块的真实覆盖率,必须给toNum.js单独编写测试用例,覆盖所有未执行的语句、分支和函数。
内容的提问来源于stack exchange,提问作者Hosam Abdelnaser
相关产品推荐
相关产品推荐

