I'm trying to use Karma + Mocha for the first time

1.8k views Asked by At

I'm trying to use Karma + Mocha for the first time.

The main condition is to run the unit tests in a Docker container without any GUI. I don't have any browser, and my only choice is to use PhantomJS.

I have configured all necessary plugins, configs etc., but I received the following error:

ReferenceError: Can't find variable: exports

Before the test run, I built the JavaScript source code with Babel to the 'build' directory and then started Karma from there.

What could be causing this problem?

Here is my karma.conf.js:

// Karma configuration
// Generated on Mon Apr 25 2016 13:04:28 GMT+0300 (RTZ 2 (зима))
const path = require('path');
const webpack = require('webpack');

module.exports = function(config) {
  var confBuilder = require('./webpack.config');

  confBuilder.module.loaders.push({
      test: /\.jsx$/,
      loader: 'isparta',
      include: path.resolve('src'),
  });
  confBuilder.devtool = 'inline-source-map';

  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: ['mocha', 'chai'/*'jasmine' /*, 'requirejs'*/],


// list of files / patterns to load in the browser
files: [
  {pattern: 'build/utils/*.js', load: false}
],



// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
  'tests.webpack.js': ['webpack', 'sourcemap'],
  'build/utils/*.js': ['babel']
},



// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['mocha', 'coverage', 'jenkins'],

plugins: [
    require('karma-webpack'),
    require('karma-mocha'),
    require('karma-chai'),
    require('karma-mocha-reporter'),
    require('karma-jenkins-reporter'),
    require('karma-chrome-launcher'),
    require('karma-sourcemap-loader'),
    require('karma-coverage'),
    require('karma-phantomjs-launcher'),
    require('karma-requirejs'),
    require('karma-babel-preprocessor')
],

webpack: confBuilder,

webpackServer: {
    noInfo: true,
},

coverageReporter: {
    check: {
        global: {
            statements: 86,
            branches: 80,
            functions: 95,
            lines: 40,
        },
    },
},

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


// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: true,
autoWatch: true,
  })
}
0

There are 0 answers