如何在测试 React.js App 时从 Jest 获得测试覆盖率?
Posted
技术标签:
【中文标题】如何在测试 React.js App 时从 Jest 获得测试覆盖率?【英文标题】:How to get test coverage from Jest while testing React.js App? 【发布时间】:2015-04-01 17:33:20 【问题描述】:我们需要检查我们的 React.js 应用程序的测试覆盖率,理想情况下获取 lcov.info 输出以发送到第三方覆盖率跟踪器,如 Coveralls 或CodeClimate
从Jest API 不清楚运行测试时如何获取测试覆盖率信息。
GitHub 上有一个 Open 问题:https://github.com/facebook/jest/issues/101 和相关的拉取请求:https://github.com/facebook/jest/pull/178 但是PR还没有被Jest核心团队合并。
是否有一种替代方法可以获取有效的覆盖信息今天?
注意:我知道 @adrian-adkison 建议在:https://***.com/a/27479903/1148249 但 @hankhsiao's fork 与 jest-cli 相当过时,因为他2.5 个月前提交了 Pull Request...
【问题讨论】:
【参考方案1】:@hankhsiao 的分叉已被合并。我一直在使用最新的https://github.com/facebook/jest 并取得了很好的效果。
jest --coverage
【讨论】:
TypeScript React 项目失败。【参考方案2】:npm test -- --coverage
注意中间多出--
,docs
【讨论】:
额外的--
有什么作用?
后面的任何内容 -- 是 npm 将传递给正在运行的脚本的参数,在这种情况下可能是 jest
。将导致jest --coverage
这应该是公认的答案。【参考方案3】:
你可以开玩笑
jest --coverage
或者你也可以在你的 package.json 中的 jest 配置中将 "collectCoverage"
设置为 true
。这样每次运行 jest 时都会生成覆盖率报告。
尽管您应该知道这会显着增加测试运行所需的时间。
【讨论】:
【参考方案4】:在你的 package.json 脚本部分下添加这段代码 -
test: react-scripts test --coverage
【讨论】:
以上是关于如何在测试 React.js App 时从 Jest 获得测试覆盖率?的主要内容,如果未能解决你的问题,请参考以下文章
react.js 之 create-react-app 命令行工具系统讲解
如何根据以下条件将变量从 loginform 传递给 app.js,并在使用 react js 时移动到下一个屏幕
如何在(Ionic + React.js App)中自动聚焦 IonInput/OtpInput 字段,我已经尝试了所有解决方案