如何使用Jest收集生成的子流程的代码覆盖率?

时间:2018-11-19 11:55:44

标签: node.js jestjs istanbul nyc

我正在为CLI编写集成测试。所有的单元测试都是使用Jest编写的,因为它开箱即用,它无需任何配置即可产生代码覆盖,但是不幸的是,它不检测子流程,例如通过Node的spawn和fork命令执行。

我已尝试按照this comment on a GitHub issue中的建议将nyc引入混合,但是它对我没有用。

我玩过各种配置(基于上述的最初建议以及这些问题的构想:12),但是我根本没有覆盖率统计信息,或者仅获得了覆盖率统计信息单元测试,而不是产生子流程的集成测试。

我的package.json的相关部分,用于配置nyc和Jest:

"scripts": {
  "test": "cross-env NODE_ENV=test nyc --clean jest --coverage",
},
"jest": {
  "verbose": true,
  "testURL": "http://localhost/",
  "globalSetup": "./jest.setup.js",
  "transform": {
    "^.+\\.js$": "babel-jest"
  },
  "collectCoverage": false
},
"nyc": {
  "include": [
    "packages/*/src/**/*.js"
  ],
  "reporter": [
    "html"
  ]
},

我正在使用execa来运行子流程,操作如下:

await execa("nyc --reporter none node", args);

0 个答案:

没有答案