/ass

A node.js code coverage library which aggregates stats cross process.

Primary LanguageHTMLOtherNOASSERTION

Build Status

![What kind of ass?](donkey.png)

Ass: Cross Process Code Coverage

ass is a small node.js code coverage library with the following features:

  • dynamic instrumentation: code is instrumented on the fly
  • minimal setup: get code coverage reports with minimal impact on your project
  • multiple process support: coverage data from multiple processes is aggregated into a single report
  • different report formats: basic reporting functionality built in

Theory

The philosophy behind ass is that implementing code coverage should be a trivial process. That no pre or post processing should be required. That the code coverage library should itself handle reporting (not require support from your test framework). And finally, that code coverage data should be programatically accessible.

Practice

To get started with ass, first install it:

npm install --save-dev ass

Then instrument processes that are run by your test harness by adding a single "stub" file (say your original server was in server.js, let's assume you name the stub stub.js):

require('ass');
require('./server.js');

Finally, you can enable testing in your test harness programatically:

var ass = require('ass').enable();

// .. run all of your tests, spawning instrumented processes

ass.report('html', function(err, report) {
  require('fs').writeFileSync('coverage.html', report);
});

Example

A full example of code coverage is available:

$ git clone git://github.com/lloyd/ass
$ cd ass/example
$ npm install
$ npm test
$ open coverage.html

License

MIT

Credits

The infamous Zach Carter created our fantastic logo.

The design of the html reporter was lifted from TJ Holowaychuk's fantastic mocha test framework.