Skip to content
Snippets Groups Projects
karma.conf.js 3.98 KiB
Newer Older
Giuseppe Digilio's avatar
Giuseppe Digilio committed
/**
 * @author: @AngularClass
 */

module.exports = function (config) {
  var testWebpackConfig = require('./webpack/webpack.test.js')({
    env: 'test'
  });
Giuseppe Digilio's avatar
Giuseppe Digilio committed

Matteo Perelli's avatar
Matteo Perelli committed
  // Uncomment and change to run tests on a remote Selenium server
  var webdriverConfig = {
    hostname: 'localhost',
    port: 4444
Giuseppe Digilio's avatar
Giuseppe Digilio committed
  var configuration = {
lotte's avatar
lotte committed
    client: {
      jasmine: {
        random: false
      }
    },
Giuseppe Digilio's avatar
Giuseppe Digilio committed
    // base path that will be used to resolve all patterns (e.g. files, exclude)
Giuseppe Digilio's avatar
Giuseppe Digilio committed

    /*
     * Frameworks to use
     *
     * available frameworks: https://npmjs.org/browse/keyword/karma-adapter
     */
    frameworks: ['jasmine'],

    plugins: [
      require("istanbul-instrumenter-loader"),
Giuseppe Digilio's avatar
Giuseppe Digilio committed
      require('karma-chrome-launcher'),
      require('karma-coverage'),
      require("karma-istanbul-preprocessor"),
      require('karma-jasmine'),
Giuseppe Digilio's avatar
Giuseppe Digilio committed
      require('karma-mocha-reporter'),
      require('karma-phantomjs-launcher'),
      require('karma-remap-coverage'),
Giuseppe Digilio's avatar
Giuseppe Digilio committed
      require('karma-remap-istanbul'),
      require('karma-sourcemap-loader'),
      require('karma-webdriver-launcher'),
      require('karma-webpack')
Giuseppe Digilio's avatar
Giuseppe Digilio committed
    ],

    // list of files to exclude
Giuseppe Digilio's avatar
Giuseppe Digilio committed

    /*
     * list of files / patterns to load in the browser
     *
     * we are building the test environment in ./spec-bundle.js
     */
    files: [{
      pattern: './spec-bundle.js',
Lotte Hofstede's avatar
Lotte Hofstede committed
      watched: false,
Giuseppe Digilio's avatar
Giuseppe Digilio committed

    /*
     * preprocess matching files before serving them to the browser
     * available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
     */
    preprocessors: {
      './spec-bundle.js': [
        'istanbul',
        'webpack',
        'sourcemap'
      ]
Giuseppe Digilio's avatar
Giuseppe Digilio committed

    // Webpack Config at ./webpack.test.js
    webpack: testWebpackConfig,

William Welling's avatar
William Welling committed
    // save interim raw coverage report in memory
Giuseppe Digilio's avatar
Giuseppe Digilio committed
    coverageReporter: {
William Welling's avatar
William Welling committed
      type: 'in-memory'
Giuseppe Digilio's avatar
Giuseppe Digilio committed
    },

    remapCoverageReporter: {
William Welling's avatar
William Welling committed
      'text-summary': null, // to show summary in console
      html: './coverage/html',
      cobertura: './coverage/cobertura.xml'
Giuseppe Digilio's avatar
Giuseppe Digilio committed
    },

    remapIstanbulReporter: {
William Welling's avatar
William Welling committed
      remapOptions: {}, //additional remap options
Giuseppe Digilio's avatar
Giuseppe Digilio committed
      reports: {
        json: './coverage/coverage.json',
        lcovonly: './coverage/lcov.info',
        html: './coverage/html/',
    /**
     * Webpack please don't spam the console when running in karma!
     */
    webpackMiddleware: {
      /**
       * webpack-dev-middleware configuration
       * i.e.
       */
      noInfo: true,
      /**
       * and use stats to turn off verbose output
       */
      stats: {
        /**
         * options i.e.
         */
        chunks: false
      }
Giuseppe Digilio's avatar
Giuseppe Digilio committed

    /*
     * test results reporter to use
     *
     * possible values: 'dots', 'progress'
     * available reporters: https://npmjs.org/browse/keyword/karma-reporter
     */
    reporters: [
      'mocha',
      'coverage',
      'remap-coverage',
      'karma-remap-istanbul'
    ],
Giuseppe Digilio's avatar
Giuseppe Digilio committed

Matteo Perelli's avatar
Matteo Perelli committed
    // Karma web server port
    port: 9876,
Giuseppe Digilio's avatar
Giuseppe Digilio committed

    // 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
     */
Giuseppe Digilio's avatar
Giuseppe Digilio committed

    // enable / disable watching file and executing tests whenever any file changes
Giuseppe Digilio's avatar
Giuseppe Digilio committed

    /*
     * start these browsers
     * available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
     */
    browsers: [
      'Chrome'
    ],

    customLaunchers: {
Matteo Perelli's avatar
Matteo Perelli committed
      // Remote Selenium Server with Chrome - launcher
      'SeleniumChrome': {
Giuseppe Digilio's avatar
Giuseppe Digilio committed
        base: 'WebDriver',
        config: webdriverConfig,
Giuseppe Digilio's avatar
Giuseppe Digilio committed
        browserName: 'chrome'
Giuseppe Digilio's avatar
Giuseppe Digilio committed
      },
Matteo Perelli's avatar
Matteo Perelli committed
      // Remote Selenium Server with Firefox - launcher
      'SeleniumFirefox': {
Giuseppe Digilio's avatar
Giuseppe Digilio committed
        base: 'WebDriver',
        config: webdriverConfig,
Giuseppe Digilio's avatar
Giuseppe Digilio committed
        browserName: 'firefox'
    mochaReporter: {
      ignoreSkipped: true
    },

    browserNoActivityTimeout: 30000
Giuseppe Digilio's avatar
Giuseppe Digilio committed
  };

  config.set(configuration);
};