首页 > 解决方案 > 为什么开玩笑的代码覆盖率报告显示不一致的值?

问题描述

我正在尝试获得 100% 的分支覆盖率。根据 Jest 的覆盖率报告,每个单独的文件显示 100% 的覆盖率,但“所有文件”报告显示 96.97%。

如果每个文件都是 100%,那么不应该所有文件也都是 100% 吗?

显示 0 的文件似乎无关紧要,因为先前的拉取请求显示相同的文件,覆盖率为 0%,但“所有文件”分支 cov 为 100%。只是自从添加了我的新代码/功能后,我才似乎放弃了覆盖范围。

我正在运行以下命令来运行我的测试并获得覆盖率报告:

jest --coverage --watchAll

我错过了测试覆盖率还是与 jest 报告覆盖率的方式不一致?

代码覆盖率报告

标签: javascriptnode.jstestingjestjscode-coverage

解决方案


看起来src/env/index.ts有一个没有经过测试的车削操作员。这减少了分支覆盖率,因为它是一个没有被测试的条件。

就我而言,我不想测试我的 env 文件,所以我已添加到我的jest.config.js文件中

collectCoverageFrom: [
  '**/*.{ts,js}',
  '!env/index.ts', // <-- ignoring env file
  '!**/node_modules/**',
  '!**/build/**',
  '!**/dist/**',
  '!**/coverage/**'
],

推荐阅读