在构建在Jasmine之上的JavaScript Jest测试框架中,是否有一种方法可以覆盖代码?
内部框架不输出它得到的代码覆盖率。我也试过使用伊斯坦布尔, 毯子,和JSCover,但没有一个工作。
检查最新的笑话(v 0.22): https://github.com/facebook/jest
更新:2018年7月20日-增加链接和更新的名称覆盖记者。
更新:2017年8月14日-这个答案完全过时了。看看Jest文档就知道了。他们有关于如何做到这一点的官方支持和文件。
@hankhsiao有一个分叉回购,伊斯坦布尔正在与Jest合作。将此添加到您的开发依赖项中
"devDependencies": { "jest-cli": "git://github.com/hankhsiao/jest.git" }
还要确保在包中启用了覆盖率。Json笑话条目,你也可以指定你想要的格式。(html是非常糟糕的)。
"jest": { "collectCoverage": true, "coverageReporters": ["json", "html"], }
coverageReporters参见Jest的文档(默认为["json", "lcov", "text"])
["json", "lcov", "text"]
或者在调用jest时添加--coverage。
--coverage
我有同样的问题,我修复如下。
npm install --save-dev yarn
npm install --save-dev jest-cli
"jest-coverage": "yarn run jest -- --coverage"
在编写测试之后,运行命令npm run jest-coverage。这将在根目录中创建一个覆盖文件夹。/报道/ icov-report / index . html有代码覆盖的HTML视图。
npm run jest-coverage
当使用Jest 21.2.1时,我可以在命令行中看到代码覆盖率,并通过将--coverage传递给Jest脚本来创建覆盖率目录。下面是一些例子:
我倾向于在本地安装Jest,在这种情况下,命令可能是这样的:
npx jest --coverage
我假设(虽然还没有确认),如果我在全局安装Jest,这也可以工作:
jest --coverage
非常稀疏的文档是在这里
当我导航到覆盖/ lcov-report目录时,我发现一个可以加载到浏览器中的index . html文件。它包括在命令行打印的信息,以及其他信息和一些图形输出。
对于任何最近在研究这个问题的人特别是直接使用__ABC0或yarn进行测试时
yarn
目前,您不需要更改配置选项
根据笑话官方网站,你可以做以下事情来生成覆盖率报告:
必须在传递Jest的--coverage参数之前放置--
--
npm test -- --coverage
如果你尝试直接调用--coverage而没有--,它将无法工作
你可以直接传递jest的--coverage参数
yarn test --coverage
配置您的包。json文件
"test": " joke -coverage",
现在运行:
yarn test
如果你正在使用NestJS框架,你可以使用这个命令获得代码覆盖率:
npm run test:cov
这对我来说很管用:
"jest": { "collectCoverage": true, "coverageReporters": ["json", "html"] }, "scripts": { "test": "jest --coverage" },
运行:
yarn/npm test
如果你想在浏览器中查看,你可以这样做,
然后你可以直观地看到所有的覆盖区域。 < / p >
你也可以参考下面的链接,以获得更多信息 https://dev.to/stevescruz/awesome-jest-tip-coverage-report-h5j < / p >