【问题标题】:How to get test coverage from Jest while testing React.js App?如何在测试 React.js App 时从 Jest 获得测试覆盖率?
【发布时间】:2015-04-01 17:33:20
【问题描述】:

我们需要检查我们的 React.js 应用程序的测试覆盖率,理想情况下获取 lcov.info 输出以发送到第三方覆盖率跟踪器,如 CoverallsCodeClimate

Jest API 不清楚运行测试时如何获取测试覆盖率信息。

GitHub 上有一个 Open 问题https://github.com/facebook/jest/issues/101 和相关的拉取请求:https://github.com/facebook/jest/pull/178 但是PR还没有被Jest核心团队合并。

是否有一种替代方法可以获取有效的覆盖信息今天

注意:我知道 @adrian-adkison 建议在:https://stackoverflow.com/a/27479903/1148249@hankhsiao's fork 与 jest-cli 相当过时,因为他2.5 个月前提交了 Pull Request...

【问题讨论】:

    标签: facebook testing code-coverage reactjs jestjs


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-03
        • 1970-01-01
        • 2019-04-08
        • 2019-06-11
        • 1970-01-01
        • 2017-01-05
        • 2015-02-12
        • 1970-01-01
        相关资源
        最近更新 更多