1. jscoverage
a javascript coverage tool, can be used in node dev, and browser side js dev
jscoverage
Package: jscoverage
Created by: fishbar
Last modified: Sun, 19 Jun 2022 05:53:36 GMT
Version: 0.6.0
License: MIT
Downloads: 12,335
Repository: https://github.com/fishbar/jscoverage

Install

npm install jscoverage
yarn add jscoverage

jscoverage

logo

jscoverage tool, both node.js or javascript support

Build Status
NPM version

install

 npm install jscoverage

changelog

from v0.5.0, jscoverage start using uglify2, and enhance the coverage range.
now, jscoverage will find out which branch you missed!

Get start

using mocha loading the jscoverage module, then it's work:

 mocha -r jscoverage test/

jscoverage will append coverage info when you select list or spec or tap reporter in mocha

 mocha -r jscoverage -R spec test/

besides, you can use --covout to specify the reporter, like html, detail.
the detail reporter will print the uncovered code in the console directly.

using jscoverage with mocha

full modelł:

 mocha -r jscoverage --covignore .covignore --covout=html --covinject=true --coverage=90,85,75 test

the cmd above means:

  • mocha run test case with jscoverage module
  • jscoverage will ignore files while list in .covignore file
  • jscoverage will output a report in html format
  • jscoverage will inject a group of function to your module.exports (_get, _set, _reset, _replace);
  • jscoverage will switch the colorful output: 90%+ is greate, 85%+ is ok, lower then 75% coverage is terrible

jscoverage can recognise all options below:

 --covignore [filepath] # like gitignore, tell jscoverage to ignore these files
 --overrideIgnore [boolean] # set if override the build-in ignore rules
 --covout [output report] # can be:  spec, list, tap, detail, html
 --coverage [high,middle,low] # coverage level, default is: 90,70,30 , means 90% is high, 30% is low
 --covinject [boolean] # switch if inject code for easytest(exports._get, exports._replace, exports._reset)

default jscoverage will search .covignore in the project root

using jscoverage as cli command

 jscoverage
# print help info
jscoverage source.js
# convert source.js to source-cov.js
jscoverage source.js dest.js
# convert source.js to dest.js
jscoverage sourcedir destdir --exclude a.js,b.js,c.js,*.min.js
# convert all files in sourcedir to destdir, exclude list will be ignored

jscoverage will copy exclude file from source dir to dest dir

using inject api for node.js test

 var testMod = require('module/for/test.js');

testMod._get('name');
testMod._replace('name', value);
testMod._reset();
testMod._call();

inline ignore annotation

using bellow comment, jscoverage will ignore the following block/statement

   /* @covignore */

using jscoverage programmatically

comming soon

mocha global leaks detect

The follow object will be detected, all of them are created by jscoverage.

  • _$jscoverage
  • _$jscmd

RELATED POST

10 Must-Know Windows Shortcuts That Will Save You Time

10 Must-Know Windows Shortcuts That Will Save You Time

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Arrays vs Linked Lists: Which is Better for Memory Management in Data Structures?

Navigating AWS Networking: Essential Hacks for Smooth Operation

Navigating AWS Networking: Essential Hacks for Smooth Operation

Achieving Stunning Visuals with Unity's Global Illumination

Achieving Stunning Visuals with Unity's Global Illumination

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code

Nim's Hidden Gems: Lesser-known Features for Writing Efficient Code