Jest code coverage 统计不准?重新设置覆盖率阈值即可

阅读时长 3 分钟读完

在前端开发中,单元测试是必不可少的环节。而 Jest 是一个非常流行的 JavaScript 测试框架,它不仅可以运行单元测试,还可以生成代码覆盖率报告。但是,在实际使用中,你可能会发现 Jest 生成的代码覆盖率报告与实际情况不符,这时候就需要重新设置覆盖率阈值。

为什么会出现代码覆盖率统计不准的情况?

首先,我们需要了解一下 Jest 是如何统计代码覆盖率的。Jest 使用了 Istanbul 这个代码覆盖率工具来帮助生成覆盖率报告。Istanbul 会在代码运行时,通过对代码进行插桩来统计代码覆盖率。但是,由于一些原因,比如代码中存在异步操作、代码中有分支等,会导致统计结果不准确。

如何重新设置覆盖率阈值?

重新设置覆盖率阈值可以帮助我们更准确地判断代码的覆盖率情况。在 Jest 中,我们可以通过在 package.json 中配置 coverageThreshold 来设置覆盖率阈值。coverageThreshold 是一个对象,它包含以下几个属性:

  • global:全局覆盖率阈值
  • each:每个文件的覆盖率阈值
  • statements:语句覆盖率阈值
  • branches:分支覆盖率阈值
  • functions:函数覆盖率阈值
  • lines:行覆盖率阈值

下面是一个示例的 coverageThreshold 配置:

-- -------------------- ---- -------
-
  ------- -
    -------------------- -
      --------- -
        ----------- ---
        ------------ ---
        -------- ---
        ------------- --
      --
      ----------------------------- -
        ----------- ---
        ------------ ---
        -------- ---
        ------------- --
      -
    -
  -
-

在上面的配置中,全局的覆盖率阈值是 80%,每个文件的覆盖率阈值也是 80%,同时还设置了语句、分支、函数和行的覆盖率阈值。另外,还针对 ./src/components/Button.js 文件设置了覆盖率阈值,其分支、函数、行和语句的覆盖率阈值都是 70%。

总结

重新设置覆盖率阈值可以帮助我们更准确地判断代码的覆盖率情况,从而更好地进行单元测试。在 Jest 中,我们可以通过在 package.json 中配置 coverageThreshold 来设置覆盖率阈值。需要注意的是,覆盖率阈值的设置需要根据实际情况进行调整,过高的阈值可能会导致测试覆盖率不足,而过低的阈值则可能会导致测试覆盖率过高。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65bdf2d0add4f0e0ff78cb45

纠错
反馈