Commit 3caabebc by Marcin Cieslak

Measure coverage for api, runtime and spec js tests

Instrument spec.js for test coverage
measurement.
parent 12639834
node_modules/** node_modules/**
test/coverage/html
...@@ -23,18 +23,18 @@ function coverage() { ...@@ -23,18 +23,18 @@ function coverage() {
collector = new Collector(); collector = new Collector();
if (cov) { if (cov) {
mkdirp(path.join('coverage', 'html'), function(err) { mkdirp(path.join('coverage', 'html'), function(err) {
if (err) { throw err; } if (err) { throw err; }
collector.add(cov); collector.add(cov);
summary.writeReport(collector); summary.writeReport(collector, true);
html.writeReport(collector); html.writeReport(collector, true);
lcov.on('done', function() { lcov.on('done', function() {
fs.readFile(path.join('coverage', 'lcov.info'), function(err, data) { fs.readFile(path.join('coverage', 'lcov.info'), function(err, data) {
if (err) { console.error(err); } if (err) { console.error(err); }
coveralls.handleInput(data.toString(), coveralls.handleInput(data.toString(),
function (err) { if (err) { console.error(err); } }); function (err) { if (err) { console.error(err); } });
}); });
}); });
lcov.writeReport(collector); lcov.writeReport(collector, true);
}); });
} else { } else {
console.warn('No coverage'); console.warn('No coverage');
...@@ -44,19 +44,21 @@ function coverage() { ...@@ -44,19 +44,21 @@ function coverage() {
var instrumenter = new Instrumenter(); var instrumenter = new Instrumenter();
var instrumentedfiles = []; var instrumentedfiles = [];
var processfile = function(source) { var processfile = function(source) {
fs.readFile(path.join('lib', source), function(err, data) { fs.readFile(path.join('lib', source), function(err, data) {
if (err) { throw err; } if (err) { throw err; }
mkdirp('lib-cov', function(err) { mkdirp('lib-cov', function(err) {
if (err) { throw err; } if (err) { throw err; }
fs.writeFile(path.join('lib-cov', source), fs.writeFile(path.join('lib-cov', source),
instrumenter.instrumentSync(data.toString(), instrumenter.instrumentSync(data.toString(),
path.join('lib', source)), path.join('lib', source)),
function(err) { function(err) {
if (err) { throw err; } if (err) { throw err; }
instrumentedfiles.push(source); instrumentedfiles.push(source);
if (instrumentedfiles.length === sourcefiles.length) { if (instrumentedfiles.length === sourcefiles.length) {
fs.readdirSync('test').filter(function(file){ fs.readdirSync('test').filter(function(file){
return file.substr(-6) === 'api.js'; return file.substr(-6) === 'api.js' ||
file.substr(-11) === 'runtime.js' ||
file.substr(-7) === 'spec.js';
}).forEach(function(file){ }).forEach(function(file){
mocha.addFile( mocha.addFile(
path.join('test', file) path.join('test', file)
...@@ -69,9 +71,9 @@ function coverage() { ...@@ -69,9 +71,9 @@ function coverage() {
}); });
}); });
} }
}); });
}); });
}); });
}; };
for (var i in sourcefiles) { for (var i in sourcefiles) {
processfile(sourcefiles[i]); processfile(sourcefiles[i]);
......
...@@ -3,7 +3,9 @@ var assert = require('assert'), ...@@ -3,7 +3,9 @@ var assert = require('assert'),
exists = fs.existsSync, exists = fs.existsSync,
path = require('path'), path = require('path'),
read = fs.readFileSync, read = fs.readFileSync,
sass = require('../lib'), sass = process.env.NODESASS_COV
? require('../lib-cov')
: require('../lib'),
util = require('./util'); util = require('./util');
describe('spec', function() { describe('spec', function() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment