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

2022-08-30 00:48:54

有没有办法在JavaScript Jest测试框架中实现代码覆盖率,该框架建立在Jasmine之上?

内部框架不会打印出它所获得的代码覆盖率。我也尝试过使用伊斯坦布尔毯子JSCover,但它们都不起作用。


答案 1

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

我倾向于在本地安装Jest,在这种情况下,命令可能如下所示:

npx jest --coverage

我假设(虽然尚未确认),如果我全局安装Jest,这也将起作用:

jest --coverage

非常稀疏的文档在这里

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


答案 2

更新:7/20/2018 - 添加了覆盖范围报告员的链接和更新的名称。

更新:8 / 14 / 2017 - 这个答案完全过时了。现在看看Jest文档。他们有关于如何做到这一点的官方支持和文档。

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

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

还要确保在 package.json jest 条目中启用了覆盖率,还可以指定所需的格式。(html是相当糟糕的屁股)。

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

请参阅 Jest 文档了解覆盖范围报告者(默认值为["json", "lcov", "text"])

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