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

Javascript 如何使用Jest获取代码覆盖率报告?,javascript,jestjs,Javascript,Jestjs,在JavaScriptJest测试框架中有没有一种方法可以覆盖代码,该框架构建在Jasmine之上 内部框架打印出它得到的代码覆盖率。我也尝试过使用和,但都不起作用。试试。我刚刚用过。我写了一篇关于如何在VisualStudio中集成的博客 这就是我如何用Chutzpah实现代码覆盖的方法: 查看最新的笑话(V0.22): Facebook团队将代码覆盖率输出添加为覆盖率报告的一部分,您可以直接使用它 在执行Jest之后,您可以在控制台中获得一个覆盖率报告,在Jest设置的根文件夹下,您可以

在JavaScriptJest测试框架中有没有一种方法可以覆盖代码,该框架构建在Jasmine之上

内部框架打印出它得到的代码覆盖率。我也尝试过使用和,但都不起作用。

试试。我刚刚用过。我写了一篇关于如何在VisualStudio中集成的博客

这就是我如何用Chutzpah实现代码覆盖的方法:

  • 查看最新的笑话(V0.22):

  • Facebook团队将代码覆盖率输出添加为覆盖率报告的一部分,您可以直接使用它

  • 在执行Jest之后,您可以在控制台中获得一个覆盖率报告,在Jest设置的根文件夹下,您可以找到JSON和HTML格式的覆盖率报告

  • 仅供参考,如果您从npm安装,您可能无法获得最新版本;因此,请首先尝试GitHub,并确保覆盖范围是您所需要的


  • 更新:2018年7月20日-增加了coverageReporters的链接和更新名称

    更新:2017年8月14日-此答案完全过时。现在就看笑话文档吧。他们有关于如何做到这一点的官方支持和文件

    @汉晓有一个分岔回购协议,伊斯坦布尔正与笑话合作。将此添加到您的开发依赖项中

     "devDependencies": {
         "jest-cli": "git://github.com/hankhsiao/jest.git"
     }
    
    还要确保在package.json jest条目中启用了覆盖率,并且还可以指定所需的格式。(html非常糟糕)

    请参阅(默认值为
    [“json”、“lcov”、“text”]


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

    我也遇到了同样的问题,我修复了它,如下所示

  • 安装纱线
    npm安装--保存开发纱线
  • 安装jest cli
    npm安装--保存开发jest cli
  • 将此添加到package.json
    “jest覆盖范围”:“纱线运行jest--coverage”

  • 编写测试后,运行命令
    npm run jest coverage
    。这将在根目录中创建一个覆盖率文件夹/coverage/icov report/index.html具有代码覆盖率的html视图。

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

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

    npx笑话——覆盖范围

    我假设(尽管尚未确认),如果我在全球安装Jest,这也会起作用:

    jest——覆盖范围

    非常稀疏的文档是

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

    2019年1月:Jest 23.6版 对于最近研究此问题的任何人,尤其是直接使用
    npm
    纱线进行测试的人

    目前,您不必更改配置选项

    根据,您可以执行以下操作以生成覆盖率报告:

    1-对于npm: 在传递Jest的
    --coverage
    参数之前,必须先放入
    --

    npm test -- --coverage
    
    如果尝试直接调用
    --coverage
    而不调用
    --
    ,它将无法工作

    2-对于纱线: 您可以直接传递jest的
    --coverage
    参数

    yarn test --coverage
    

    如果您在--coverage不起作用方面遇到问题,也可能是由于启用了coverageReporters而没有添加“text”或“text summary”。
    在文档中:“注意:设置此选项将覆盖默认值。添加“文本”或“文本摘要”以查看控制台输出中的覆盖率摘要。”

    配置package.json文件

    “测试”:“玩笑——覆盖范围”

    现在运行:

    yarn test
    
    所有测试都将开始运行,您将获得报告。

    如果您正在使用框架,您可以使用以下命令获得代码覆盖率:

    npm run test:cov
    
    这对我很有用:

     "jest": {
        "collectCoverage": true,
        "coverageReporters": ["json", "html"]
      },
      "scripts": {
        "test": "jest  --coverage"
      },
    
    运行:

    您可以运行npx jest--coverage--path/to/your/file.spec.js 这将显示受影响文件的覆盖范围

    如果要在浏览器中查看此内容,可以执行以下操作:

  • 转到浏览器并按CMD+O键
  • 导航到您的回购协议并搜索覆盖率/lcov report/index.html
  • 然后,您可以直观地看到所有覆盖区域。

    有关更多信息,您也可以参考下面的此链接

    我不太喜欢开玩笑,但你们看到了吗?Chutzpath是建在毯子上的,我在上面说明了开玩笑不适用于它。很有趣,因为我的玩笑刚刚起作用。您没有使用Jest,默认情况下,Jest会模拟每个
    需要的
    。问题是如何获得Jest的代码覆盖率。Istanbul和Jest不一起工作可能是真的,但这并不能回答问题。coverage Formats选项已被删除--看起来每次都会生成json和html。我使用--coverage选项,但完全没有什么不同。它(现在)被称为
    coverage Reporters
    ,默认值为
    [“json”,“lcov”,“text”]
    。请参阅不工作,未知选项“coverage formats”,值为[“json”,“html”]已找到。无需安装Thread。Thread只是与NPMinitial不同的包管理器--
    它只需要使用npm,Thread将所有参数传递给jest。切勿使用全局模块。为确保版本一致性和包的存在,请始终通过
    /node\u modules/.bin/jest--cov在
    节点\u modules
    中使用可执行文件erage
    。只要包名在package.json中,您就可以保证使用您期望的jest的准确版本执行。如何仅对更改的文件获取jest覆盖率?如果覆盖率低于某个限制,是否有一种简单的方法使测试失败?相应的SO问题:@ShanikaEdiriweera如何仅对更改的文件获取jest覆盖率?C什么时候被绞死的?你可能
     "jest": {
        "collectCoverage": true,
        "coverageReporters": ["json", "html"]
      },
      "scripts": {
        "test": "jest  --coverage"
      },
    
    yarn/npm test