From e1de40c8f3347e10d3fdf0fffad1b49c43850aeb Mon Sep 17 00:00:00 2001 From: "Eirik S. Morland" Date: Mon, 26 Jan 2015 07:33:44 +0100 Subject: [PATCH 1/4] Use karma-browserify for tests. Add browser test coverage reporter. --- package.json | 7 +++++-- tests/browser/karma.conf.js | 30 ++++++++++++++++++++++++++---- tests/browser/start.js | 1 + 3 files changed, 32 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index 05f026c0a..c3460bd47 100644 --- a/package.json +++ b/package.json @@ -42,18 +42,21 @@ }, "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", + "test-browser": "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" + "clean": "rm -r coverage || true" }, "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.0", "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) { From 22b0c21bc1bca18e428df10b20b924761393c901 Mon Sep 17 00:00:00 2001 From: "Eirik S. Morland" Date: Mon, 26 Jan 2015 22:09:27 +0100 Subject: [PATCH 2/4] Use tilde for new dependencies. --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index c3460bd47..33bdfd12e 100644 --- a/package.json +++ b/package.json @@ -48,13 +48,13 @@ }, "devDependencies": { "browserify": "~5.9.1", - "browserify-istanbul": "^0.1.3", + "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.0", + "karma-browserify": "~3.0.0", "karma-cli": "0.0.4", "karma-coverage": "0.2.6", "karma-phantomjs-launcher": "~0.1.4", From c2c1fdf2eb1ef073406a9b95f0de96d919818d5d Mon Sep 17 00:00:00 2001 From: "Eirik S. Morland" Date: Tue, 27 Jan 2015 07:51:59 +0100 Subject: [PATCH 3/4] Add coverage directory to .npmignore, remove clean script. --- .npmignore | 1 + package.json | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) 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 33bdfd12e..9a3c3e5ca 100644 --- a/package.json +++ b/package.json @@ -43,8 +43,7 @@ "scripts": { "test": "npm run lint && node node_modules/.bin/taper tests/test-*.js && npm run test-browser && npm run clean", "test-browser": "node tests/browser/start.js", - "lint": "node node_modules/.bin/eslint lib/ *.js tests/ && echo Lint passed.", - "clean": "rm -r coverage || true" + "lint": "node node_modules/.bin/eslint lib/ *.js tests/ && echo Lint passed." }, "devDependencies": { "browserify": "~5.9.1", From 880513a91f2c03de0a17c9e86c7fd9d3fdd43b5a Mon Sep 17 00:00:00 2001 From: "Eirik S. Morland" Date: Tue, 27 Jan 2015 18:35:04 +0100 Subject: [PATCH 4/4] Upgrade to karma-browserify 3.0.1. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9a3c3e5ca..69d68d1bb 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,7 @@ "function-bind": "~1.0.0", "istanbul": "~0.3.2", "karma": "~0.12.21", - "karma-browserify": "~3.0.0", + "karma-browserify": "~3.0.1", "karma-cli": "0.0.4", "karma-coverage": "0.2.6", "karma-phantomjs-launcher": "~0.1.4",