在构建在Jasmine之上的JavaScript Jest测试框架中,是否有一种方法可以覆盖代码?
内部框架不输出它得到的代码覆盖率。我还尝试过使用Istanbul、blanket和JSCover,但它们都不起作用。
在构建在Jasmine之上的JavaScript Jest测试框架中,是否有一种方法可以覆盖代码?
内部框架不输出它得到的代码覆盖率。我还尝试过使用Istanbul、blanket和JSCover,但它们都不起作用。
当前回答
更新: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"],
}
请参阅Jest文档中的coverageReporters(默认为["json", "lcov", "text"])
或者当你引用笑话时添加-coverage。
其他回答
更新: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"],
}
请参阅Jest文档中的coverageReporters(默认为["json", "lcov", "text"])
或者当你引用笑话时添加-coverage。
查看最新的Jest (v 0.22): https://github.com/facebook/jest Facebook团队将伊斯坦布尔代码覆盖率输出作为覆盖率报告的一部分,您可以直接使用它。 执行Jest后,您可以在控制台中获得覆盖率报告,在Jest设置的根文件夹下,您将发现JSON和HTML格式的覆盖率报告。 仅供参考,如果你从npm安装,你可能不会得到最新的版本;所以先试试GitHub,确保它的覆盖范围是你需要的。
2019年1月:Jest 23.6版
对于最近正在研究这个问题的人,尤其是直接使用npm或yarn进行测试的人
目前,您不需要更改配置选项
根据Jest官方网站,您可以执行以下操作来生成覆盖率报告:
1-对于npm:
必须在传递Jest的——覆盖参数之前放入——
npm test -- --coverage
如果你试图在没有——的情况下直接调用——覆盖,它将不起作用
2-对于纱线:
你可以直接传递jest的-coverage参数
yarn test --coverage
如果你遇到了覆盖不工作的问题,也可能是由于启用了coverageReporters而没有添加'text'或'text-summary'。 文档中写道:“注意:设置此选项将覆盖默认值。添加“文本”或“文本摘要”以查看控制台输出中的覆盖率摘要。源
这对我来说很管用:
"jest": {
"collectCoverage": true,
"coverageReporters": ["json", "html"]
},
"scripts": {
"test": "jest --coverage"
},
Run:
yarn/npm test