2016-05-18 13 views
1

Ich benutzte requirejs in Karma Module zu laden, es hat gut funktioniert. Wenn ich requirejs zu webpack ändere, führt Karma keine Testfälle durch. Ich verwende mocha, sinon, chai als mein Test-Framework. HierKarma nicht Testfälle laufen

├── src 
| ├── js 
|  └── a.js 
├── test 
| ├── spec 
|  └── test_a.js 

ist mein karma.conf.js:

var webpackConfig = require("../webpack.config"); 

module.exports = function(config) { 
    config.set({ 
     basePath: '../', 

     frameworks: ['mocha', 'chai', 'sinon'], 

     files: [ 
      'test/**/test_*.js' 
     ], 

     preprocessors: { 
     'test/**/test_*.js': ['webpack'] 
     }, 

     webpack: webpackConfig, 

     proxies: { 
      '/data/': '/base/test/data/' 
     }, 

     exclude: [], 

     client: { 
      mocha: { 
       reporter: 'html', 
       ui: 'bdd' 
      } 
     }, 

     reporters: ['progress'], 

     port: 9876, 

     colors: true, 

     logLevel: config.LOG_DEBUG, 

     autoWatch: false, 

     browsers: ['PhantomJS', 'Chrome'], 

     singleRun: false, 

     concurrency: Infinity 
    }) 
} 

Und mein webpack.config.js ist:

var webpack = require('webpack'); 
var path = require('path'); 

module.exports = { 
    context: path.join(__dirname, 'src'), 

    entry: { 
     bundle1: './initializer.js' 
    }, 

    output: { 
     path: path.join(__dirname, 'src'), 
     filename: '[name].js' 
    }, 

    resolve: { 
     extensions: ['', '.js'], 
     modulesDirectories: ["./src", "node_modules"] 
    }, 

    devtool: 'inline-source-map', 

    module: { 
     loaders: [] 
    } 
} 

Mein test_a.js ist:

require([ 
    'jquery', 
    'src/js/a' 
], function($, A) { // $ and A load successfully 

    describe('A', function() { 
     beforeEach(function() { 
      //**** 
     }); 

     afterEach(function() { 
      //**** 
     }); 

     describe('#on()', function() { // will come to this line 
      it('should ....', function() { //will come to this line too 
       assert.ok(1 > 0, "A is working"); // never run into the function 
      }); 
     }); 
    } 

}

Als ich karma laufen, ist die Fehlermeldung wie folgt aus: enter image description here

Antwort

0

Nach require-define in meiner Testdatei zu verändern, es funktioniert jetzt. Es scheint, webpack wird require verwenden, um Commonjs-Modul als Standard zu laden.