伊斯坦布尔代码覆盖率

Istanbul Code Coverage

我有一个 React 项目,其中包含用 Mocha 编写的测试。伊斯坦布尔用于获取测试覆盖率。

我在名为 lib 的文件夹中有 4 个 React 组件,而在 test 文件夹中,我只为其中的 2 个组件编写了测试。当 Istanbul 报告覆盖率时,它说是 100%,但显然该项目不是 100%,因为有些组件未经测试。如何获取 lib 文件夹中组件的正确覆盖率报告?

我的.istanbul.yml看起来像这样

instrumentation:
  root: ./lib
  extensions: ['.js', '.jsx']
reporting:
    print: summary
    reports:
        - lcov
    dir: ./coverag

package.json 中的脚本如下所示

"code_cov": "babel-node ./node_modules/istanbul/lib/cli.js cover node_modules/mocha/bin/_mocha -- ./test/**/*.spec.js"

文件夹结构如下所示

/
  /lib
   - Component1.jsx
   - Component2.jsx
   - Component3.jsx
   - Component4.jsx
  /test
   - Component1.spec.js
   - Component2.spec.js
   - Component3.spec.js
   - Component4.spec.js
.istanbul.yml
package.json

我做错了什么?任何指导都会有所帮助。谢谢。

可能是 duplicate

解决方案是使用 include-all-sources 添加标志 here

在你的情况下应该是:

"code_cov": "babel-node ./node_modules/istanbul/lib/cli.js --include-all-sources cover node_modules/mocha/bin/_mocha -- ./test/**/*.spec.js"