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

React Native项目Jest覆盖率工具运行报错该如何解决?

解决方案

问题根因

你的Jest配置未排除覆盖率报告目录下的文件,导致旧报告里的前端页面脚本(sorter.js、block-navigation.js)被Jest误识别为测试用例执行。这类脚本依赖浏览器环境的window、document对象,而React Native默认的测试环境没有相关全局变量,因此触发报错。

可落地的3种修复方案

方案1:配置测试路径忽略规则(最推荐)

在Jest配置中新增testPathIgnorePatterns字段,明确排除覆盖率目录即可:

const config: Config.InitialOptions = {
  // 保留原有其他配置
  testPathIgnorePatterns: [
    '<rootDir>/node_modules/',
    '<rootDir>/__tests__/coverage/' // 新增这行,路径和你配置的coverageDirectory对应
  ]
}

方案2:修改测试文件匹配规则

调整testRegex配置,用负向预查排除__tests__下的coverage目录文件:

testRegex: "(/__tests__/(?!coverage).*|\\.(test|spec))\\.(ts|tsx|js)$",

方案3:测试前自动清理旧覆盖率报告

修改项目package.json中的测试命令,每次执行测试前自动删除旧的coverage目录:

  • 兼容Unix/Mac系统直接用rm命令:
{
  "scripts": {
    "test": "rm -rf __tests__/coverage && jest"
  }
}
  • 要跨Windows/Unix兼容的话,先安装rimraf依赖:npm i rimraf -D,再修改命令:
{
  "scripts": {
    "test": "rimraf __tests__/coverage && jest"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 00:48:04