测试的时候,我们常常关心,是否所有代码都测试到了。
这个指标就叫做“代码覆盖率”(code coverage)。它有四个测量维度:
- 行覆盖率(line coverage):是否每一行都执行了?
- 函数覆盖率(function coverage):是否每个函数都调用了?
- 分支覆盖率(branch coverage):是否每个if代码块都执行了?
- 语句覆盖率(statement coverage):是否每个语句都执行了?
Istanbul 是 JavaScript 程序的代码覆盖率工具,本文介绍它的用法。
这个软件以土耳其最大城市伊斯坦布尔命名,因为土耳其地毯世界闻名,而地毯是用来覆盖的。
一、安装
Istanbul 是一个 npm 模块,安装非常简单,就一行命令。
$ npm install -g istanbul
二、覆盖率测试
来看一个例子,怎么使用 Istanbul 。下面是脚本文件 simple.js 。
var a = 1;
var b = 1;
if ((a + b) > 2) {
console.log('more than two');
}
使用 istanbul cover 命令,就能得到覆盖率。
$ istanbul cover simple.js
===== Coverage summary =====
Statements : 75% ( 3/4 )
Branches : 50% ( 1/2 )
Functions : 100% ( 0/0 )
Lines : 75% ( 3/4 )
=============================
返回结果显示