完美的覆蓋率當然是 100%,但是現實中很難達到。需要有一個門檻,衡量覆蓋率是否達標。
istanbul check-coverage?命令用來設置門檻,同時檢查當前代碼是否達標。
~~~
$ istanbul check-coverage --statement 90
ERROR: Coverage for statements (75%) does not meet global threshold (90%)
~~~
上面命令設置語句覆蓋率的門檻是 90% ,結果就報錯了,因為實際覆蓋率只有75%。
除了百分比門檻,我們還可以設置絕對值門檻,比如只允許有一個語句沒有被覆蓋到。
~~~
$ istanbul check-coverage --statement -1
~~~
上面命令使用負數,表示絕對值門檻。這樣一來,上面的例子就通過了覆蓋率測試,不會再報錯了。
百分比門檻和絕對值門檻,可以結合使用。
~~~
$ istanbul check-coverage --statement -5 --branch -3 --function 100
~~~
上面命令設置了3個覆蓋率門檻:5個語句、3個 if 代碼塊、100%的函數。注意,這三個門檻是"與"(and)的關系,只要有一個沒有達標,就會報錯。