commando.html5/node_modules/bunker
Captain Nick Lucifer* a0bc2d79de dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
..
example dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
test dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
.npmignore dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
.travis.yml dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
README.markdown dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
index.js dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45
package.json dot.dot.dot.exampol 2023-03-10 23:21:16 +05:45

README.markdown

bunker

Bunker is a module to calculate code coverage using native javascript burrito AST trickery.

build status

code coverage

examples

tiny

var bunker = require('bunker');
var b = bunker('var x = 0; for (var i = 0; i < 30; i++) { x++ }');

var counts = {};

b.on('node', function (node) {
    if (!counts[node.id]) {
        counts[node.id] = { times : 0, node : node };
    }
    counts[node.id].times ++;
});

b.run();

Object.keys(counts).forEach(function (key) {
    var count = counts[key];
    console.log(count.times + ' : ' + count.node.source());
});

output:

$ node example/tiny.js 
1 : var x=0;
31 : i<30
30 : i++
30 : x++;
30 : x++

methods

var bunker = require('bunker');

var b = bunker(src)

Create a new bunker code coverageifier with some source src.

The bunker object b is an EventEmitter that emits 'node' events with two parameters:

b.include(src)

Include some source into the bunker.

b.compile()

Return the source wrapped with burrito.

b.assign(context={})

Assign the statement-tracking functions into context.

b.run(context={})

Run the source using vm.runInNewContext() with some context. The statement-tracking functions will be added to context by assign().