jscoverage tool, both node.js or javascript support, only used for pixbi
npm install pixbi-jscoverage
from v0.5.0, jscoverage start using uglify2, and enhance the coverage range. now, jscoverage will find out which branch you missed!
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.
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
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
var testMod = require('module/for/test.js');
testMod._get('name');
testMod._replace('name', value);
testMod._reset();
testMod._call();
using bellow comment, jscoverage will ignore the following block/statement
/* @covignore */
comming soon
The follow object will be detected, all of them are created by jscoverage.
- _$jscoverage
- _$jscmd