我无法弄清楚如何让业力不留意 jspm_packages / 文件夹中的更改。 如果我尝试将'jspm_packages'添加到exclude部分,那么我会收到以下错误:
DEBUG [web-server]: serving (cached): /Users/jm/dev/monka/node_modules/gulp-helpers/node_modules/karma-jspm/src/adapter.js PhantomJS 1.9.8 (Mac OS X 0.0.0) ERROR ReferenceError: Can't find variable: System at /Users/jm/dev/monka/system.config.js:1 ERROR [PhantomJS 1.9.8 (Mac OS X 0.0.0)]: ReferenceError: Can't find variable: System at http://localhost:9876/base/system.config.js?31f6cba38ed6c99ea3e9b4bc926e8ecfd6de8bd7:1
这是我的 karma.conf.js
module.exports = function(config) {
config.set({
plugins: [
'karma-jspm',
'karma-jasmine',
'karma-beep-reporter',
'karma-verbose-reporter',
'karma-babel-preprocessor',
'karma-phantomjs-launcher'
],
basePath : '', // base path that will be used to resolve all patterns (eg. files, exclude)
frameworks : ['jspm', 'jasmine'], // frameworks to use available frameworks: https://npmjs.org/browse/keyword/karma-adapter
browsers : ['PhantomJS'], // start these browsers available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
reporters : ['progress', 'beep', 'verbose'/*, 'coverage'*/], // test results reporter to use possible values: 'dots', 'progress' available reporters: https://npmjs.org/browse/keyword/karma-reporter
singleRun : false, // Continuous Integration mode if true, Karma captures browsers, runs the tests and exits
autoWatch : true, // Enable / disable watching file and executing tests whenever any file changes
colors : true, // enable / disable colors in the output (reporters and logs)
files : [], // list of files / patterns to load in the browser
jspm: {
config : 'system.config.js',
loadFiles : ['test-unit/**/*.js'],
serveFiles : ['dist/**/**']
},
proxies: {
'/base/app' : '/base/dist/app',
'/base/common' : '/base/dist/common',
'/jspm_packages' : '/base/jspm_packages'
},
exclude: [
'coverage/**',
'typings/**',
'dist/**/*.js.map'
],
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_DEBUG,
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'src/**/*.js' : ['babel', 'coverage']
},
babelPreprocessor: {
options: { sourceMap:'inline', modules:'system' }
},
coverageReporter: { type:'html', dir:'coverage/' }
});
};
答案 0 :(得分:0)
我认为使用Karma无法排除被监视的文件也应该被提供。 通过排除jspm_packages,Karma停止服务于位于jspm_packages文件夹中的system.js,因此未定义System。
如果你想在测试运行期间摆脱服务jspm_packages,你可以尝试在创建一个自执行的bundle之后运行测试,然后只为该bundle提供服务。