diff --git a/.npmignore b/.npmignore index 80e59ef52..53fc9efa9 100644 --- a/.npmignore +++ b/.npmignore @@ -1,2 +1,3 @@ +coverage tests node_modules diff --git a/package.json b/package.json index 05f026c0a..69d68d1bb 100644 --- a/package.json +++ b/package.json @@ -42,18 +42,20 @@ }, "scripts": { "test": "npm run lint && node node_modules/.bin/taper tests/test-*.js && npm run test-browser && npm run clean", - "test-browser": "browserify tests/browser/test.js -o tests/browser/test-browser.js && node tests/browser/start.js", - "lint": "node node_modules/.bin/eslint lib/ *.js tests/ && echo Lint passed.", - "clean": "rm tests/browser/test-browser.js || true" + "test-browser": "node tests/browser/start.js", + "lint": "node node_modules/.bin/eslint lib/ *.js tests/ && echo Lint passed." }, "devDependencies": { "browserify": "~5.9.1", + "browserify-istanbul": "~0.1.3", "coveralls": "~2.11.2", "eslint": "0.5.1", "function-bind": "~1.0.0", "istanbul": "~0.3.2", "karma": "~0.12.21", + "karma-browserify": "~3.0.1", "karma-cli": "0.0.4", + "karma-coverage": "0.2.6", "karma-phantomjs-launcher": "~0.1.4", "karma-tap": "~1.0.1", "rimraf": "~2.2.8", diff --git a/tests/browser/karma.conf.js b/tests/browser/karma.conf.js index f5c308f8e..6c9311bb0 100644 --- a/tests/browser/karma.conf.js +++ b/tests/browser/karma.conf.js @@ -1,15 +1,20 @@ 'use strict' +var istanbul = require('browserify-istanbul') module.exports = function(config) { config.set({ - basePath: '', - frameworks: ['tap'], + basePath: '../..', + frameworks: ['tap', 'browserify'], + preprocessors: { + 'tests/browser/test.js': ['browserify'], + '*.js,!(tests)/**/*.js': ['coverage'] + }, files: [ - 'test-browser.js' + 'tests/browser/test.js' ], port: 9876, - reporters: ['dots'], + reporters: ['dots', 'coverage'], colors: true, @@ -21,6 +26,23 @@ module.exports = function(config) { singleRun: true, + plugins: [ + 'karma-phantomjs-launcher', + 'karma-coverage', + 'karma-browserify', + 'karma-tap' + ], + browserify: { + debug: true, + transform: [istanbul({ + ignore: ['**/node_modules/**', '**/tests/**'] + })] + }, + coverageReporter: { + type: 'lcov', + dir: 'coverage/' + }, + // Custom launcher to allowe self signed certs. customLaunchers: { PhantomJS_without_security: { diff --git a/tests/browser/start.js b/tests/browser/start.js index 0027f2612..c515f2be3 100644 --- a/tests/browser/start.js +++ b/tests/browser/start.js @@ -26,6 +26,7 @@ server.listen(port, function() { path.join(__dirname, '/karma.conf.js') ]) c.stdout.pipe(process.stdout) + c.stderr.pipe(process.stderr) c.on('exit', function(c) { // Exit process with karma exit code. if (c !== 0) {