有没有办法在JavaScript Jest测试框架(构建在Jasmine之上)中实现代码覆盖?内部框架不会打印出它所得到的代码覆盖率,我也尝试过使用Istanbul、blanket和JSCover,但是它们都不起作用。
sbtkgmzw1#
在使用Jest 21.2.1时,我可以在命令行看到代码覆盖率,并通过将--coverage传递给Jest脚本来创建一个覆盖率目录。我倾向于在本地安装Jest,在这种情况下,命令可能如下所示:npx jest --coverage我假设(虽然还没有证实),如果我在全局安装Jest,这也会起作用:jest --coverage非常稀疏的文档在这里当我导航到coverage/lcov-report目录时,我发现了一个可以加载到浏览器中的index.html文件,其中包括在命令行打印的信息,以及其他信息和一些图形输出。
--coverage
npx jest --coverage
jest --coverage
vwkv1x7d2#
更新:7/20/2018 -添加链接并更新coverageReporters的名称。更新:8/14/2017 -这个答案完全过时了。现在就看看Jest文档吧。他们有官方的支持和关于如何做到这一点的文档。@hankhsiao有一个分叉的repo,伊斯坦布尔在那里和Jest一起工作。把这个添加到你的开发依赖项中
"devDependencies": { "jest-cli": "git://github.com/hankhsiao/jest.git" }
还要确保在你的package.json jest条目中启用了覆盖率,你还可以指定你想要的格式(html是相当糟心的)。
"jest": { "collectCoverage": true, "coverageReporters": ["json", "html"], }
有关覆盖率报告器,请参见Jest documentation(默认值为["json", "lcov", "text"])或者在调用jest时添加--coverage。
["json", "lcov", "text"]
iswrvxsc3#
对于最近关注此问题的任何人尤其是直接使用npm或yarn进行测试时目前,您不必更改配置选项根据Jest官方网站,您可以执行以下操作来生成覆盖率报告:
npm
yarn
必须在传递Jest的--coverage参数之前输入--
--
npm test -- --coverage
如果您尝试直接调用--coverage而不调用--,则无法正常工作
您可以直接传递jest的--coverage参数
yarn test --coverage
cmssoen24#
这对我很有效:
"jest": { "collectCoverage": true, "coverageReporters": ["json", "html"] }, "scripts": { "test": "jest --coverage" },
运行:
yarn/npm test
cs7cruho5#
您可以运行npx jest --coverage -- path/to/your/file.spec.js,它将显示受影响文件的覆盖率如果要在浏览器中查看此内容,可以执行以下操作,1.转到浏览器和CMD+O。1.导航到您的存储库并搜索coverage/lcov-report/index.html然后您可以直观地看到所有覆盖区域。x1c 0d1x您也可以参考下面的链接,了解更多信息https://dev.to/stevescruz/awesome-jest-tip-coverage-report-h5j
mgdq6dx16#
1.检查最新的笑话(v 0.22):https://github.com/facebook/jest
9nvpjoqh7#
如果您遇到--coverage不起作用的问题,也可能是因为启用coverageReporters时没有添加'text'或'text-summary'。“注意:设置此选项将覆盖默认值。添加“text”或“text-summary”可在控制台输出中查看覆盖率摘要。”Source
agxfikkp8#
配置package.json文件"测试":"笑话-覆盖范围",
现在运行:
yarn test
所有测试都将开始运行,您将获得报告。
9q78igpj9#
我有同样的问题,我修复如下.1.安装Yarnnpm install --save-dev yarn1.安装jest-cli npm install --save-dev jest-cli1.将此添加到包中。json "jest-coverage": "yarn run jest -- --coverage"编写完测试后,运行命令npm run jest-coverage。这将在根目录下创建一个覆盖率文件夹。/coverage/icov-report/index.html 具有代码覆盖率的HTML视图。
npm install --save-dev yarn
npm install --save-dev jest-cli
"jest-coverage": "yarn run jest -- --coverage"
npm run jest-coverage
9条答案
按热度按时间sbtkgmzw1#
在使用Jest 21.2.1时,我可以在命令行看到代码覆盖率,并通过将
--coverage
传递给Jest脚本来创建一个覆盖率目录。我倾向于在本地安装Jest,在这种情况下,命令可能如下所示:
npx jest --coverage
我假设(虽然还没有证实),如果我在全局安装Jest,这也会起作用:
jest --coverage
非常稀疏的文档在这里
当我导航到coverage/lcov-report目录时,我发现了一个可以加载到浏览器中的index.html文件,其中包括在命令行打印的信息,以及其他信息和一些图形输出。
vwkv1x7d2#
更新:7/20/2018 -添加链接并更新coverageReporters的名称。
更新:8/14/2017 -这个答案完全过时了。现在就看看Jest文档吧。他们有官方的支持和关于如何做到这一点的文档。
@hankhsiao有一个分叉的repo,伊斯坦布尔在那里和Jest一起工作。把这个添加到你的开发依赖项中
还要确保在你的package.json jest条目中启用了覆盖率,你还可以指定你想要的格式(html是相当糟心的)。
有关覆盖率报告器,请参见Jest documentation(默认值为
["json", "lcov", "text"]
)或者在调用jest时添加
--coverage
。iswrvxsc3#
2019年1月:Jest版本23.6
对于最近关注此问题的任何人尤其是直接使用
npm
或yarn
进行测试时目前,您不必更改配置选项
根据Jest官方网站,您可以执行以下操作来生成覆盖率报告:
1-对于npm:
必须在传递Jest的
--coverage
参数之前输入--
如果您尝试直接调用
--coverage
而不调用--
,则无法正常工作2-对于Yarn:
您可以直接传递jest的
--coverage
参数cmssoen24#
这对我很有效:
运行:
cs7cruho5#
您可以运行npx jest --coverage -- path/to/your/file.spec.js,它将显示受影响文件的覆盖率
如果要在浏览器中查看此内容,可以执行以下操作,
1.转到浏览器和CMD+O。
1.导航到您的存储库并搜索coverage/lcov-report/index.html
然后您可以直观地看到所有覆盖区域。x1c 0d1x
您也可以参考下面的链接,了解更多信息https://dev.to/stevescruz/awesome-jest-tip-coverage-report-h5j
mgdq6dx16#
1.检查最新的笑话(v 0.22):https://github.com/facebook/jest
1.执行Jest之后,您可以在控制台中获得一个覆盖率报告,在Jest设置的根文件夹下,您将找到JSON和HTML格式的覆盖率报告。
9nvpjoqh7#
如果您遇到--coverage不起作用的问题,也可能是因为启用coverageReporters时没有添加'text'或'text-summary'。“注意:设置此选项将覆盖默认值。添加“text”或“text-summary”可在控制台输出中查看覆盖率摘要。”Source
agxfikkp8#
配置package.json文件
"测试":"笑话-覆盖范围",
现在运行:
所有测试都将开始运行,您将获得报告。
9q78igpj9#
我有同样的问题,我修复如下.
1.安装Yarn
npm install --save-dev yarn
1.安装jest-cli
npm install --save-dev jest-cli
1.将此添加到包中。json
"jest-coverage": "yarn run jest -- --coverage"
编写完测试后,运行命令
npm run jest-coverage
。这将在根目录下创建一个覆盖率文件夹。/coverage/icov-report/index.html 具有代码覆盖率的HTML视图。