当您运行 jest --coverage 时,Branches 列的作用/含义是啥?

Posted

技术标签:

【中文标题】当您运行 jest --coverage 时,Branches 列的作用/含义是啥?【英文标题】:When you run jest --coverage, what does the Branches column do/mean?当您运行 jest --coverage 时,Branches 列的作用/含义是什么? 【发布时间】:2018-09-25 09:18:45 【问题描述】:

我进行了测试,这就是我收到的结果:

---------------|----------|----------|----------|----------|-------------------| File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s | ---------------|----------|----------|----------|----------|-------------------| All files | 100 | 0 | 100 | 100 | | Search | 100 | 100 | 100 | 100 | | index.js | 100 | 100 | 100 | 100 | | SearchResults | 100 | 0 | 100 | 100 | | index.js | 100 | 0 | 100 | 100 | 4 | ---------------|----------|----------|----------|----------|-------------------| Test Suites: 2 passed, 2 total Tests: 5 passed, 5 total Snapshots: 1 passed, 1 total Time: 4.678s 我已经改变了一些东西,现在我在 Branch 列上有 0%,但我不知道为了改进它意味着什么。

【问题讨论】:

【参考方案1】:

条件语句会创建可能无法执行的代码分支(例如 if/else)。该指标告诉您有多少分支已被执行。

【讨论】:

噢,我明白了!谢谢! 顺便说一句,我投了赞成票,但我只有 6 个声望点。我之前有 8 个,但有人否决了这个问题。在投票显示之前我需要 15 :( 有人会认为这是写在开玩笑文档中的某处,但我什么也没找到... 在没有测试代码分支的情况下执行了 100% 的行有什么意义?假设我们有一个 IF,如果 true 分支到 code1,如果 false 分支到 code2。如果执行了 100% 行,那么分支 code1code2 都已执行,对吗?那么我们不希望报告中的 %brance 大于 0 吗? 你应该编写测试两个分支的代码,这样你就有 100% 的覆盖率,而不是相反

以上是关于当您运行 jest --coverage 时,Branches 列的作用/含义是啥?的主要内容,如果未能解决你的问题,请参考以下文章

Jest + Coverage + VueJs 如何覆盖 vue 方法?

没有找到测试用例 Jest

TypeError:state.userInfo 在 Jest 测试中不可迭代

使用 Nuxt 对 VueJS 应用程序的 Jest 测试覆盖率

打字稿在vscode中找不到名称'test'

如何使用 grunt-run 执行 npm 脚本?