如何使用Jest获得代码覆盖率报告?

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

内部框架输出它得到的代码覆盖率。我也试过使用伊斯坦布尔毯子,和JSCover,但没有一个工作。

381818 次浏览
  1. 检查最新的笑话(v 0.22): https://github.com/facebook/jest

  2. Facebook团队将伊斯坦布尔代码覆盖率输出添加为覆盖率报告的一部分,您可以直接使用它。

  3. 执行Jest后,你可以在控制台中得到一个覆盖率报告,在Jest设置的根文件夹下,你会发现JSON和HTML格式的覆盖率报告。

  4. 如果你从npm安装,你可能不会得到最新的版本;所以先试试GitHub,确保它的覆盖范围是你需要的。

更新:2018年7月20日-增加链接和更新的名称覆盖记者。

更新:2017年8月14日-这个答案完全过时了。看看Jest文档就知道了。他们有关于如何做到这一点的官方支持和文件。

@hankhsiao有一个分叉回购,伊斯坦布尔正在与Jest合作。将此添加到您的开发依赖项中

 "devDependencies": {
"jest-cli": "git://github.com/hankhsiao/jest.git"
}

还要确保在包中启用了覆盖率。Json笑话条目,你也可以指定你想要的格式。(html是非常糟糕的)。

 "jest": {
"collectCoverage": true,
"coverageReporters": ["json", "html"],
}

coverageReporters参见Jest的文档(默认为["json", "lcov", "text"])

或者在调用jest时添加--coverage

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

  1. 安装纱线npm install --save-dev yarn
  2. 安装jest-cli npm install --save-dev jest-cli
  3. 把这个加到包里。json "jest-coverage": "yarn run jest -- --coverage"

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

当使用Jest 21.2.1时,我可以在命令行中看到代码覆盖率,并通过将--coverage传递给Jest脚本来创建覆盖率目录。下面是一些例子:

我倾向于在本地安装Jest,在这种情况下,命令可能是这样的:

npx jest --coverage

我假设(虽然还没有确认),如果我在全局安装Jest,这也可以工作:

jest --coverage

非常稀疏的文档是在这里

当我导航到覆盖/ lcov-report目录时,我发现一个可以加载到浏览器中的index . html文件。它包括在命令行打印的信息,以及其他信息和一些图形输出。

2019年1月:Jest 23.6版

对于任何最近在研究这个问题的人特别是直接使用__ABC0或yarn进行测试时

目前,您不需要更改配置选项

根据笑话官方网站,你可以做以下事情来生成覆盖率报告:

1-对于npm:

必须在传递Jest的--coverage参数之前放置--

npm test -- --coverage

如果你尝试直接调用--coverage而没有--,它将无法工作

2-对于纱线:

你可以直接传递jest的--coverage参数

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

配置您的包。json文件

"test": " joke -coverage",

enter image description here

现在运行:

yarn test
所有的测试将开始运行,您将得到报告。 enter image description here < / p >

如果你正在使用NestJS框架,你可以使用这个命令获得代码覆盖率:

npm run test:cov

这对我来说很管用:

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

运行:

yarn/npm test
你可以执行npx jest——coverage——path/to/your/file.spec.js 这将显示受影响文件的覆盖率

如果你想在浏览器中查看,你可以这样做,

  1. 进入浏览器,CMD+O。
  2. 导航到您的repo并搜索coverage/lcov-report/index.html

然后你可以直观地看到所有的覆盖区域。 enter image description here < / p >

你也可以参考下面的链接,以获得更多信息 https://dev.to/stevescruz/awesome-jest-tip-coverage-report-h5j < / p >