Credits to David for creating this! Codacy support for Node.js. Get coverage reporting and code analysis for Node.js from Codacy.
##Installation:
Add the latest version of codacy-coverage to your package.json:
npm install codacy-coverage --save
If you're using mocha, add mocha-lcov-reporter to your package.json:
npm install mocha-lcov-reporter --save
##Usage:
This script ( bin/codacy-coverage.js ) can take standard input from any tool that emits the lcov data format (including mocha's LCov reporter) and send it to Codacy to report your code coverage there.
Once your app is instrumented for coverage, and building, you need to pipe the lcov output to ./node_modules/codacy-coverage/bin/codacy-coverage.js.
You'll need to provide the Report token from Codacy via an environment variable:
- CODACY_REPO_TOKEN (the secret repo token from Codacy.com)
- Install blanket.js
- Configure blanket according to docs.
- Run your tests with a command like this:
NODE_ENV=test YOURPACKAGE_COVERAGE=1 ./node_modules/.bin/mocha \
--require blanket \
--reporter mocha-lcov-reporter | ./node_modules/codacy-coverage/bin/codacy-coverage.jsInstrumenting your app for coverage is probably harder than it needs to be (read here), but that's also a necessary step.
In mocha, if you've got your code instrumented for coverage, the command for a travis build would look something like this:
YOURPACKAGE_COVERAGE=1 ./node_modules/.bin/mocha test -R mocha-lcov-reporter | ./node_modules/codacy-coverage/bin/codacy-coverage.jsWith Mocha:
istanbul cover ./node_modules/mocha/bin/_mocha --report lcovonly -- -R spec && cat ./coverage/lcov.info | ./node_modules/codacy-coverage/bin/codacy-coverage.js && rm -rf ./coverageWith Jasmine:
istanbul cover jasmine-node --captureExceptions spec/ && cat ./coverage/lcov.info | ./node_modules/codacy-coverage/bin/codacy-coverage.js && rm -rf ./coverageClient-side JS code coverage using PhantomJS, Mocha and Blanket:
- Configure Mocha for browser
- Mark target script(s) with
data-coverhtml-attribute - Run your tests with a command like this:
./node_modules/.bin/poncho -R lcov test/test.html | ./node_modules/codacy-coverage/bin/codacy-coverage.js