Blanket.js vs Istanbul-js vs JSCover

Blanket.js vs Istanbul-js vs JSCover

我正在尝试决定使用 JS 测试代码覆盖工具,但看不清楚它们之间的区别。 Google 中最热门的是 blanket.js、istanbul-js 和 JSCover。

任何人都可以提供有关它们与 advantages/disadvantages 之间主要区别的任何信息吗?

还有其他有用的吗?

经过一些尝试,我清楚地发现 istanbul 是将覆盖率分析引入 node-js 项目的最方便的工具。

  • 它是通过 npm install
  • 安装的
  • 它通过 .istanbul.yml
  • 设置其行为
  • 被它自己的可执行文件调用
  • 提供clover、lcov、jscoverage等多种报表格式

Istanbul 使用提供的可执行文件或 js 脚本执行测试并收集覆盖率信息。它可以通过 npm:

安装
npm install istanbul mocha

安装成功后,只需通过

调用它
./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha

尊重'_',因为摩卡分叉了_mocha-可执行文件here

blanket.js for nodejs 通过

轻松集成
  • 它是通过 npm install
  • 安装的
  • 通过 package.json
  • 配置其行为
  • 通过在命令行 blanket 中要求 mocha 调用
  • 生成由 mocha 的记者解释的统计数据,即 html-cov
  • 可以在浏览器JS中使用

基本上做完就可以用了

npm install blanket mocha

安装成功后 运行 你的 mocha 测试就是这样

./node_modules/.bin/mocha --require blanket --reporter html-cov >coverage.html

不幸的是,如果你想收集覆盖率信息以及收集测试报告,你必须调用 mocha 测试两次,因为你只能向 mocha 提供一名记者。

关于 JSCover 我不能说什么,因为它的安装对我来说太复杂了。 对我来说重要的是我不需要以 root 身份安装任何包,甚至不需要编译东西,因为对于其他用户来说创建开发环境变得更加复杂。