在构建在Jasmine之上的JavaScript Jest测试框架中,是否有一种方法可以覆盖代码?

内部框架不输出它得到的代码覆盖率。我还尝试过使用Istanbul、blanket和JSCover,但它们都不起作用。


当前回答

查看最新的Jest (v 0.22): https://github.com/facebook/jest Facebook团队将伊斯坦布尔代码覆盖率输出作为覆盖率报告的一部分,您可以直接使用它。 执行Jest后,您可以在控制台中获得覆盖率报告,在Jest设置的根文件夹下,您将发现JSON和HTML格式的覆盖率报告。 仅供参考,如果你从npm安装,你可能不会得到最新的版本;所以先试试GitHub,确保它的覆盖范围是你需要的。

其他回答

配置您的包。json文件

"test": " joke -coverage",

现在运行:

yarn test

所有测试都将开始运行,您将得到报告。

我有同样的问题,我修复如下。

安装纱线NPM Install—save-dev yarn 安装jest-cli 把这个加到包里。Json " joke -coverage": "yarn run jest -- --coverage"

在你写完测试之后,运行命令npm run joke -coverage。这将在根目录中创建一个覆盖文件夹。/coverage/icov-report/index.html有代码覆盖率的HTML视图。

查看最新的Jest (v 0.22): https://github.com/facebook/jest Facebook团队将伊斯坦布尔代码覆盖率输出作为覆盖率报告的一部分,您可以直接使用它。 执行Jest后,您可以在控制台中获得覆盖率报告,在Jest设置的根文件夹下,您将发现JSON和HTML格式的覆盖率报告。 仅供参考,如果你从npm安装,你可能不会得到最新的版本;所以先试试GitHub,确保它的覆盖范围是你需要的。

如果你遇到了覆盖不工作的问题,也可能是由于启用了coverageReporters而没有添加'text'或'text-summary'。 文档中写道:“注意:设置此选项将覆盖默认值。添加“文本”或“文本摘要”以查看控制台输出中的覆盖率摘要。源

这对我来说很管用:

 "jest": {
    "collectCoverage": true,
    "coverageReporters": ["json", "html"]
  },
  "scripts": {
    "test": "jest  --coverage"
  },

Run:

yarn/npm test