首页 > 解决方案 > 在 Jest 中添加测试用例如何降低代码覆盖率?

问题描述

我刚刚使用 Jest 测试套件遇到了一个奇怪的情况。我没有修改代码,但我添加了一个测试。

前:

 mylibrary.js |   95.65 |    89.66 |     100 |   95.65 | 54-56,84       
---------------|---------|----------|---------|---------|-------------------
Test Suites: 3 passed, 3 total
Tests:       22 passed, 22 total

后:

 mylibrary.js |   95.65 |    89.29 |     100 |   95.65 | 54-56,84          
---------------|---------|----------|---------|---------|-------------------
Test Suites: 3 passed, 3 total
Tests:       23 passed, 23 total

我无法共享代码,但我想问:在 Jest 中,当我添加测试调用时,测试覆盖率怎么可能会降低?

我期待的结果是增加了 2 行覆盖范围。

使用 Jest 27.1.0。这是一个非常简单的库,没有依赖项。

(我已经重新添加/删除了测试用例,以验证这不是由其他因素引起的一些怪异)。

标签: javascriptnode.jsunit-testingjestjscode-coverage

解决方案


statementsfunctions、 和lines看起来相同,而您的branch略有下降。看起来您的新测试仅涵盖了某些分支逻辑的一种场景,而没有测试逻辑的替代场景。

通常,可以通过不覆盖所有 、 或 路径来添加测试并statements降低functions覆盖率。在这种情况下,您添加的测试似乎并未涵盖所有路径。linesbranchbranch

检查Uncovered Line #s列中的黄色行号。


推荐阅读