美文网首页
04-Istanbul代码覆盖率

04-Istanbul代码覆盖率

作者: hutou | 来源:发表于2016-01-26 19:10 被阅读195次

    测试的时候,我们常常关心,是否所有代码都测试到了。

    这个指标就叫做"代码覆盖率"(code coverage)。它有四个测量维度。

    行覆盖率(line coverage):是否每一行都执行了?
    函数覆盖率(function coverage):是否每个函数都调用了?
    分支覆盖率(branch coverage):是否每个if代码块都执行了?
    语句覆盖率(statement coverage):是否每个语句都执行了?

    官方地址

    起步

    1. 安装
    $ npm install -g istanbul
    
    1. 简单例子
      编写一个简单的程序 test.js
    var test1 = "Hello ";
    var test2 = "World! ";
    console.info(test1 + test2);
    function myfunc(){
        console.info('this is a test.');
    }
    

    运行程序,并且在coverage目录下生成报告

    $ istanbul cover test.js
    

    覆盖率设置

    完美的覆盖率当然是 100%,但是现实中很难达到。需要有一个门槛,衡量覆盖率是否达标。
    istanbul check-coverage 命令用来设置门槛,同时检查当前代码是否达标。

    $ istanbul check-coverage --statement 90
    

    上面命令设置语句覆盖率的门槛是 90%

    $ istanbul check-coverage --statement -1
    

    我们还可以设置绝对值门槛,比如只允许有一个语句没有被覆盖到

    $ istanbul check-coverage --statement -5 --branch -3 --function 100
    

    上面命令设置了3个覆盖率门槛:5个语句、3个 if 代码块、100%的函数。注意,这三个门槛是"与"(and)的关系,只要有一个没有达标,就会报错。

    相关文章

      网友评论

          本文标题:04-Istanbul代码覆盖率

          本文链接:https://www.haomeiwen.com/subject/mzrzhttx.html