我运行了一个简单的karma init
并在整个过程中按下输入以获取以下karma.conf.js:
// Karma configuration
// Generated on Thu Jan 21 2016 10:32:15 GMT-0600 (CST)
module.exports = function(config) {
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: ['jasmine'],
// list of files / patterns to load in the browser
files: [
'**/*.spec.js'
],
// list of files to exclude
exclude: [
],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
},
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress'],
// web server port
port: 9876,
// 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
logLevel: config.LOG_INFO,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: true,
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['Chrome'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: false,
// Concurrency level
// how many browser should be started simultaneous
concurrency: Infinity
})
}
然而,在尝试运行一个看似如下的简单测试之后:
describe('test', function() {
it('should return true', function() {
expect(true).toEqual('true');
})
});
运行时,我得到以下输出:
1 01 2016 10:32:47.879:WARN [karma]: No captured browser, open http://localhost:9876/
21 01 2016 10:32:47.888:INFO [karma]: Karma v0.13.19 server started at http://localhost:9876/
21 01 2016 10:32:47.892:INFO [launcher]: Starting browser Chrome
21 01 2016 10:32:50.192:INFO [Chrome 47.0.2526 (Mac OS X 10.11.3)]: Connected on socket /#RpTiNDwYyXuP29hTAAAA with id 21512010
Chrome 47.0.2526 (Mac OS X 10.11.3) ERROR
Uncaught ReferenceError: require is not defined
at /Users/sgarcia/dev/karma/hello-karma/node_modules/karma-chrome-launcher/test/jsflags.spec.js:1
为什么它说不能找到requireJS尽管我没有使用它?
答案 0 :(得分:3)
问题是您的文件列表:
files: [
'**/*.spec.js'
],
这将捕获所有* .spec.js文件,这就是它找到“/Users/sgarcia/dev/karma/hello-karma/node_modules/karma-chrome-launcher/test/jsflags.spec.js”的原因这是对karma-chrome-launcher本身的开发人员的测试,它确实调用了requireJS,你可能不希望在测试套件中包含它: - )
考虑将所有测试文件放在 ./ test 中,并将karma.conf.js文件部分更改为:
files: [
'js/**/*.js',
'tests/**/*.spec.js'
],