Babel Jest 中没有代码覆盖

No code coverage in Babel Jest

我对代码覆盖有疑问。这是测试结果:

[...]
24 tests passed (24 total in 9 test suites, run time 2.353s)
----------|----------|----------|----------|----------|----------------|
File      |  % Stmts | % Branch |  % Funcs |  % Lines |Uncovered Lines |
----------|----------|----------|----------|----------|----------------|
----------|----------|----------|----------|----------|----------------|
All files |      100 |      100 |      100 |      100 |                |
----------|----------|----------|----------|----------|----------------|

All reports generated

Process finished with exit code 0

我所有的测试都成功了(预计 73 次)。但没有掩护。我只是在测试普通节点代码。我使用 babel-jest,这里有 package.json 中的配置:

"scripts": {
  "test": "jest"
},
"jest": {
  "collectCoverage": true,
  "moduleFileExtensions": [
    "js",
    "json"
  ],
  "scriptPreprocessor": "<rootDir>/node_modules/babel-jest",
  "testDirectoryName": "unit",
  "testFileExtensions": [
    "js"
  ],
  "testPathDirs": [
    "<rootDir>/tests/"
  ]
}

这是我的项目架构:

./
|-- app
|   |-- routes
|   |   |-- private
|   |   |-- public
|-- tests
|   |-- unit
|   |   |-- routes
|   |   |   |-- private
|   |   |   |-- public

如您所见,tests/unit 文件夹包含与 app 文件夹相同的架构。

您知道为什么我没有任何报告吗?提前致谢!

终于有答案了。这是 Babel 中的一个错误。在那里查看如何解决此问题:https://github.com/facebook/jest/issues/632。已在 Jest 0.9.0 中修复。