aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-server/karma.conf.js
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-server/karma.conf.js')
-rw-r--r--sonar-server/karma.conf.js130
1 files changed, 130 insertions, 0 deletions
diff --git a/sonar-server/karma.conf.js b/sonar-server/karma.conf.js
new file mode 100644
index 00000000000..a247efa23e1
--- /dev/null
+++ b/sonar-server/karma.conf.js
@@ -0,0 +1,130 @@
+/* global module:false, karma:false */
+
+// Karma configuration for JS application
+
+// GLOBAL INSTALLATION
+// sonar-server$ npm install -g
+// sonar-server$ karma start
+
+// LOCAL INSTALLATION
+// sonar-server$ npm install
+// sonar-server$ ./node_modules/.bin/karma start
+
+module.exports = function(config) {
+ config.set({
+
+ // base path, that will be used to resolve files and exclude
+ basePath: 'src/main/webapp/js',
+
+
+ // frameworks to use
+ frameworks: ['jasmine'],
+
+
+ // list of files / patterns to load in the browser
+ files: [
+ // dependencies
+ 'sonar.js',
+ 'require.js',
+
+ // libs
+ { pattern: 'third-party/backbone.js', included: false },
+ { pattern: 'third-party/backbone.marionette.js', included: false },
+ { pattern: 'third-party/handlebars.js', included: false },
+ { pattern: 'third-party/moment.js', included: false },
+ { pattern: 'third-party/jquery.mockjax.js', included: false },
+
+ // common
+ { pattern: 'common/**/*.js', included: false },
+
+ // app
+ { pattern: 'navigator/**/*.js', included: false },
+ { pattern: 'quality-gate/**/*.js', included: false },
+ { pattern: 'issues/**/*.js', included: false },
+ { pattern: 'component-viewer/**/*.js', included: false },
+ { pattern: 'templates/**/*.js', included: false },
+
+ // tests
+ { pattern: 'tests/**/*Spec.js', included: false },
+
+ 'tests/main.js'
+ ],
+
+
+ // list of files to exclude
+ exclude: [
+
+ ],
+
+
+ preprocessors: {
+ 'navigator/**/*.js': 'coverage',
+ 'component-viewer/**/*.js': 'coverage',
+ 'common/inputs.js': 'coverage',
+ 'translate.js': 'coverage'
+ },
+
+
+ plugins: [
+ 'karma-jasmine',
+ 'karma-phantomjs-launcher',
+ 'karma-coverage',
+ 'karma-junit-reporter'
+ ],
+
+
+ // test results reporter to use
+ reporters: ['progress', 'coverage', 'junit'],
+
+
+ coverageReporter: {
+ type : 'lcovonly',
+ dir : '../../../../target/karma/coverage/'
+ },
+
+ junitReporter: {
+ outputFile : '../../../../target/karma/test-results.xml'
+ },
+
+ // WARNING - the 2 following ports should not be hardcoded in CI environments
+ // web server port
+ port: 9876,
+
+
+ // cli runner port
+ runnerPort: 9100,
+
+
+ // enable / disable colors in the output (reporters and logs)
+ colors: true,
+
+
+ // level of logging
+ // possible values: karma.LOG_DISABLE || karma.LOG_ERROR || karma.LOG_WARN || karma.LOG_INFO || karma.LOG_DEBUG
+ logLevel: config.LOG_WARN,
+
+
+ // enable / disable watching file and executing tests whenever any file changes
+ autoWatch: false,
+
+
+ // Start these browsers, currently available:
+ // - Chrome
+ // - ChromeCanary
+ // - Firefox
+ // - Opera
+ // - Safari (only Mac)
+ // - PhantomJS
+ // - IE (only Windows)
+ browsers: ['PhantomJS'],
+
+
+ // If browser does not capture in given timeout [ms], kill it
+ captureTimeout: 60000,
+
+
+ // Continuous Integration mode
+ // if true, it capture browsers, run tests and exit
+ singleRun: false
+ });
+};