我们需要检查 React.js 应用程序的测试覆盖率,并理想情况下获取 lcov.info 输出以发送到第三方覆盖率跟踪器,例如 Coveralls 或 CodeClimate
从Jest API中不清楚如何在运行测试时获取测试覆盖率信息。
GitHub 上有一个 Open Issue:https://github.com/facebook/jest/issues/101 以及相关的 Pull 请求:https://github.com/facebook/jest/pull/178 但PR还没有被Jest核心团队合并
是否有一种替代方式获取覆盖信息,并且有效今天?
注意:我知道@adrian-adkison的建议:https://stackoverflow.com/a/27479903/1148249但是@hankhsiao的fork是相当过分的-自从他在 2.5 个月前提交 Pull Request 以来就与 jest-cli 约会......
@hankhsiao 的分叉已被合并。我一直在使用最新的 https://github.com/facebook/jest 并取得了很好的效果。
jest --coverage
在 script 部分下的 package.json 中添加这段代码 -
test: react-scripts test --coverage
你可以开玩笑
jest --coverage
或者您也可以在 package.json 内的 jest 配置中将
"collectCoverage"
设置为 true
。这样,每次运行 jest 时都会生成覆盖率报告。
尽管您应该知道这会显着增加测试运行所需的时间。
在我的package.json
"scripts": {
...
"test": "react-scripts test",
"test:coverage": "react-scripts test --coverage",
...
},
查看测试覆盖率
yarn test:coverage
package.json
"scripts": {
...
"test": "react-scripts test",
...
},
运行命令
npm run test -- --watchAll=false --coverage
您也可以查看详情
/coverage/icov-report/src/...<file>.html