Jest 中的 Coverage Report 怎么读取?

阅读时长 6 分钟读完

介绍

在前端开发中,测试是一个至关重要的环节。而 Jest 是一个非常流行的 JavaScript 测试框架,它能够运行单元测试和集成测试,并且提供了覆盖率报告。覆盖率报告能够帮助我们发现测试用例中覆盖率不足的部分,让我们更好地优化测试用例来提高代码质量。

在本文中,我们将介绍 Jest 中的覆盖率报告是什么,以及如何读取和分析这些报告。

什么是 Jest 中的覆盖率报告?

Jest 中的覆盖率报告是一个报告,它会显示出项目中每个文件的测试覆盖率。它会告诉你你的测试用例覆盖了多少代码,并指出哪些代码没有被测试覆盖到。

覆盖率报告是一个非常有用的工具,因为它可以帮助你确定你的测试用例是否足够充分,是否需要进一步优化测试用例。

如何启用 Jest 中的覆盖率报告?

要启用 Jest 中的覆盖率报告,只需在 Jest 配置文件中添加以下设置:

collectCoverage 表示开启代码覆盖率检测,而 coverageReporters 表示使用哪些格式输出覆盖率报告。

在运行 Jest 测试时,Jest 会生成一个覆盖率报告,它默认会输出在终端:

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

你会发现在终端输出中包含了每个文件的覆盖率信息,通过这些信息可以判断测试用例的质量是否达到了预期。

另外,如果你在 Jest 配置文件中使用了 coverageReporters 配置,Jest 还会生成相应的覆盖率报告文件。例如,如果你使用了 ["html", "text"],Jest 会生成一个 HTML 格式的报告和一个文本格式的报告。这些报告会被保存在 coverage 目录中。

如何阅读 Jest 中的覆盖率报告?

在观察 Jest 中的覆盖率报告时,我们需要关注以下几个指标:

  • Statements (语句覆盖率):表示被测试覆盖到的语句占总语句数的百分比。
  • Branches (分支覆盖率):表示被测试覆盖到的分支占总分支数的百分比。
  • Functions (函数覆盖率):表示被测试覆盖到的函数占总函数数的百分比。
  • Lines (行覆盖率):表示被测试覆盖到的行数占总行数的百分比。

另外,我们还需要关注 Uncovered Line #s 这一列,它会告诉我们哪些代码没有被测试覆盖到。我们需要根据这些信息来编写更充分的测试用例。

示例代码

下面是一个示例代码,它包含了一个 add 函数和一个对应的测试用例。这个测试用例不充分,因为它只覆盖了部分语句。

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

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

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

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

在运行完测试后,Jest 的覆盖率报告如下:

可以看到,这个测试用例只覆盖了 add 函数的 50% 代码,因此需要进一步优化测试用例以提高覆盖率。

结论

在本文中,我们介绍了 Jest 中的覆盖率报告是什么以及如何启用和阅读这些报告。我们还提供了一个示例代码,帮助你更好地理解如何使用 Jest 中的覆盖率报告来优化测试用例。希望这篇文章能对你在前端开发中使用 Jest 提供了帮助。

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

纠错
反馈