From af5fef01ea51aa24c938293982b2ac963d0025ba Mon Sep 17 00:00:00 2001 From: Wilfried Kopp Date: Thu, 5 Mar 2015 23:17:49 +0100 Subject: [PATCH] test(karma): Add Karma support - Karma support for Chrome, Firefox, Safari --- karma.conf.js | 96 +++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 7 ++++ 2 files changed, 103 insertions(+) create mode 100644 karma.conf.js diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 0000000..aa26fd2 --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,96 @@ +// Karma configuration +// Generated on Thu Feb 19 2015 19:57:47 GMT+0100 (W. Europe Standard Time) + +module.exports = function (config) { + config.set({ + + // base path that will be used to resolve all patterns (eg. files, exclude) + basePath: '', + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + + // Continuous Integration mode + // if true, Karma captures browsers, runs the tests and exits + singleRun: false, logLevel: config.LOG_INFO, + //singleRun: true, logLevel: config.LOG_DEBUG, + + // frameworks to use + // available frameworks: https://npmjs.org/browse/keyword/karma-adapter + frameworks: ['browserify', 'mocha'], + + + // list of files / patterns to load in the browser + files: [ + 'test/*.js', + + ], + + + // list of files to exclude + exclude: [ + ], + + client: { + mocha: { + //ui: 'tdd' + timeout: 5000 // especially for the post requests + } + }, + browserify: { + bundleDelay: 750, + debug: true + // transform: [], + // //extensions: ['.js'] + }, + + // preprocess matching files before serving them to the browser + // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor + preprocessors: { + 'test/*.js': ['browserify'] + }, + + + // test results reporter to use + // possible values: 'dots', 'progress' + // available reporters: https://npmjs.org/browse/keyword/karma-reporter + reporters: ['dots'], + + + // web server port + port: 9876, + + + // enable / disable colors in the output (reporters and logs) + colors: true, + + + // enable / disable watching file and executing tests whenever any file changes + autoWatch: true, + + + // start these browsers + // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher + // // Chrome + // // PhantomJS + browsers: ['Chrome', 'Safari', 'Firefox'], + browserNoActivityTimeout: 10000, + browserDisconnectTimeout: 5000, + + customLaunchers: { + chrome_without_security: { + base: 'Chrome', + flags: ['--disable-web-security'] + }, + + IE9: { + base: 'IE', + 'x-ua-compatible': 'IE=EmulateIE9' + }, + IE8: { + base: 'IE', + 'x-ua-compatible': 'IE=EmulateIE8' + } + } + }); +}; diff --git a/package.json b/package.json index 340200d..a404336 100644 --- a/package.json +++ b/package.json @@ -25,8 +25,15 @@ "gulp-uglify": ">=1.0.0", "istanbul": "^0.3.5", "jshint": ">=2.5.0", + "karma": "^0.12.31", + "karma-browserify": "^4.0.0", + "karma-chrome-launcher": "^0.1.7", + "karma-firefox-launcher": "^0.1.4", + "karma-mocha": "^0.1.10", + "karma-safari-launcher": "^0.1.1", "mocha": ">=2.1.0", "mocha-lcov-reporter": "0.0.1", + "phantomjs": "^1.9.16", "unreachable-branch-transform": "^0.1.0", "vinyl-source-stream": "^1.0.0" },