Jest中函数覆盖的含义
Posted
技术标签:
【中文标题】Jest中函数覆盖的含义【英文标题】:Meaning of function coverage in Jest 【发布时间】:2022-01-06 01:28:13 【问题描述】:这是在我的一个组件上运行 jest
的输出:
----------------------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
----------------------------|---------|----------|---------|---------|-------------------
All files | 100 | 100 | 50 | 100 |
search-suggestion-base.tsx | 100 | 100 | 50 | 100 |
----------------------------|---------|----------|---------|---------|-------------------
...
Jest: "global" coverage threshold for functions (100%) not met: 50%
注意% Funcs
不是 100 并且测试失败。 (覆盖阈值不是我设置的。我不会设置这么高的阈值。)
问题是,Jest 没有告诉我哪些是未覆盖的行。此外,我也很难弄清楚% Funcs
的含义是什么。我什至找不到这个% Funcs
的官方文档。
感谢任何帮助!
【问题讨论】:
能否在浏览器中打开.coverage/lcov-report/index.html
查看是否有未覆盖的行?关于如何阅读报道记者,见***.com/questions/26618243/…
@slideshowp2 非常感谢!该报告确实显示了未覆盖的线条!
【参考方案1】:
正如@slideshowp2 所指出的,.coverage/lcov-report/index.html
确实显示了未覆盖的线条。
.coverage
文件夹一开始并不存在。我必须使用--coverage
参数运行jest
。您可以参考How to get the code coverage report using Jest?了解更多信息。
顺便说一句,事实证明,默认事件处理程序(即函数)没有被覆盖。所以我猜% Funcs
的字面意思是覆盖的函数的百分比。
在我的例子中,默认事件处理程序是一个空函数() =>
。我想这就是为什么 Jest 告诉我“语句、分支和行”都被覆盖了,而“函数”却没有。
【讨论】:
以上是关于Jest中函数覆盖的含义的主要内容,如果未能解决你的问题,请参考以下文章
如何用 Jest 单元测试覆盖 TypeORM @Column 装饰器?
Jest、Typescript、ts-jest:覆盖范围略有不正确
Jest + Coverage + VueJs 如何覆盖 vue 方法?