requirejs
Karma でモジュールをロードするために使用しましたが、問題なく動作しました。に変更requirejs
するとwebpack
、カルマはテスト ケースを実行しません。mocha
、sinon
をchai
テスト フレームワークとして使用します。
├── src
| ├── js
| └── a.js
├── test
| ├── spec
| └── test_a.js
これが私のもの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
})
}
そして私webpack.config.js
は:
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: []
}
}
私test_a.js
は:
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
});
});
}
}