Added Karma integration

This commit introduces Karma test runner which allows running
Jasmine-based tests in browsers.

Change-Id: I11652f31fb56e9f6ee0dbfd3359259bb3e4f68fd
Co-Authored-By: Michael Krotscheck <krotscheck@gmail.com>
This commit is contained in:
Vitaly Kramskikh 2016-07-14 16:23:51 +03:00 committed by Michael Krotscheck
parent 2120a13542
commit 6f1a300585
3 changed files with 75 additions and 1 deletions

65
karma.conf.babel.js Normal file
View File

@ -0,0 +1,65 @@
import webpackConfig from './webpack.config.babel';
export default (config) => {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['jasmine'],
// list of files / patterns to load in the browser
files: [
'test/unit/**/*.js'
],
// list of files to exclude
exclude: [],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'test/unit/**/*.js': ['webpack']
},
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress'],
// web server port
port: 9876,
// enable / disable colors in the output (reporters and logs)
colors: false,
// level of logging
logLevel: config.LOG_INFO,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: false,
// Execute tests once, then exit.
singleRun: true,
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['Firefox', 'Chrome'],
// Concurrency level
// how many browser should be started simultaneous
concurrency: Infinity,
// We simulate a fully compiled browser application by using webpack. Since we only really
// use this during testing, the configuration is kept here.
webpack: webpackConfig,
webpackMiddleware: {
// Don't spam the console.
noInfo: true
}
});
};

2
karma.conf.js Normal file
View File

@ -0,0 +1,2 @@
require('babel-register');
module.exports = require('./karma.conf.babel').default;

View File

@ -4,7 +4,9 @@
"description": "JavaScript API library for OpenStack.",
"main": "dist/index.js",
"scripts": {
"test": "jasmine JASMINE_CONFIG_PATH=test/unit/jasmine.json",
"test": "npm run test:node; npm run test:browser",
"test:node": "jasmine JASMINE_CONFIG_PATH=test/unit/jasmine.json",
"test:browser": "karma start",
"lint": "eslint ./",
"prepublish": "nsp check; npm run build",
"build": "babel src -d dist && webpack",
@ -33,6 +35,11 @@
"eslint": "^2.4.0",
"eslint-config-openstack": "2.0.0",
"jasmine": "^2.4.1",
"karma": "^1.1.1",
"karma-chrome-launcher": "^1.0.1",
"karma-firefox-launcher": "^1.0.0",
"karma-jasmine": "^1.0.2",
"karma-webpack": "^1.7.0",
"nsp": "^2.4.0",
"webpack": "^1.13.1"
},