diff --git a/karma.conf.ci.js b/karma.conf.ci.js
new file mode 100644
index 0000000..399cdfd
--- /dev/null
+++ b/karma.conf.ci.js
@@ -0,0 +1,123 @@
+/*eslint-env node */
+(function () {
+  
+  'use strict';
+
+  // Karma configuration
+  // Generated on Tue Oct 06 2015 09:27:10 GMT+0000 (UTC)
+
+  const babelPreset = require('babel-preset-es2015');
+
+  /*eslint-disable*/
+
+  var files = [
+    'node_modules/babel-polyfill/dist/polyfill.js',
+
+
+    // loading jquery (it's used in tests)
+    `./bower_components/jquery/dist/jquery.js`,
+    `./bower_components/jasmine-jquery/lib/jasmine-jquery.js`,
+
+    // loading helpers and vendors
+    `./dist/ngXosVendor.min.js`,
+    `./dist/ngXosHelpers.min.js`,
+
+    // loading ngMock
+    `./bower_components/angular-mocks/angular-mocks.js`,
+  ]
+  .concat([
+    // loading tests
+    `spec/test_helpers.js`,
+    'spec/**/*.test.js'
+  ]);
+
+  module.exports = function(config) {
+  /*eslint-enable*/
+    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: files,
+
+
+      // 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: {
+        './spec/**/*.test.js': ['babel'],
+        './spec/test_helpers.js': ['babel'],
+      },
+
+      babelPreprocessor: {
+        options: {
+          presets: [babelPreset],
+          sourceMap: 'inline'
+        }
+      },
+
+      //ngHtml2JsPreprocessor: {
+      //  stripPrefix: 'src/', //strip the src path from template url (http://stackoverflow.com/questions/22869668/karma-unexpected-request-when-testing-angular-directive-even-with-ng-html2js)
+      //  moduleName: 'templates' // define the template module name
+      //},
+
+      // test results reporter to use
+      // possible values: 'dots', 'progress'
+      // available reporters: https://npmjs.org/browse/keyword/karma-reporter
+      reporters: ['dots', 'junit', 'coverage'],
+
+      junitReporter: {
+        outputDir: 'test-result',
+        useBrowserName: false,
+        outputFile: 'test-results.xml'
+      },
+
+      coverageReporter: {
+        type: 'cobertura',
+        subdir: '.',
+        dir: 'test-result/'
+      },
+
+      // web server port
+      port: 9876,
+
+
+      // enable / disable colors in the output (reporters and logs)
+      colors: true,
+
+
+      // level of logging
+      // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
+      logLevel: config.LOG_INFO,
+
+
+      // enable / disable watching file and executing tests whenever any file changes
+      autoWatch: false,
+
+
+      // start these browsers
+      // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
+      browsers: [
+        'PhantomJS',
+        // 'Chrome'
+      ],
+
+
+      // Continuous Integration mode
+      // if true, Karma captures browsers, runs the tests and exits
+      singleRun: true
+    });
+  };
+
+})();
\ No newline at end of file
