Blanket.js vs Istanbul-js vs JSCover

Chr*_*igg 35 javascript testing istanbul blanket.js

我试图决定JS测试代码覆盖率工具,但无法清楚地看到它们之间的差异.谷歌的热门歌曲是blanket.js,istanbul-js和JSCover.

任何人都可以提供有关它们与优点/缺点之间关键差异的任何信息吗?

还有其他有用的吗?

smo*_*ody 31

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

  • 它安装了npm安装
  • 它通过.istanbul.yml设置其行为
  • 由自己的可执行文件调用
  • 它提供多种报告格式,如三叶草,lcov,jscoverage等.

伊斯坦布尔使用提供的可执行文件或js脚本来执行测试并收集覆盖信息.它可以通过npm安装:

npm install istanbul mocha
Run Code Online (Sandbox Code Playgroud)

成功安装后只需调用它

./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha
Run Code Online (Sandbox Code Playgroud)

尊重'_',因为摩卡分叉了这里_mocha所说的可执行文件

nodejs的blanket.js可以很容易地集成

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

基本上它可以在做完之后使用

npm install blanket mocha
Run Code Online (Sandbox Code Playgroud)

成功安装后,只需运行你的摩卡测试

./node_modules/.bin/mocha --require blanket --reporter html-cov >coverage.html
Run Code Online (Sandbox Code Playgroud)

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

我对JSCover一无所知,因为它的安装对我来说很复杂.对我来说重要的是我不必以root身份安装任何软件包,甚至不需要编译,因为其他用户创建开发环境变得更加复杂.

  • @IgorMalyk我使用伊斯坦布尔,因为我不想两次执行测试,如果你想要测试结果和覆盖率结果,这就是你需要做的毯子.使用伊斯坦布尔,您可以执行测试并自动获得结果以及覆盖率分析 (3认同)