不能 运行 我从 "karma init" 得到的初始 karma.conf.js 因为 "require not defined" 尽管没有使用它
Can't run initial karma.conf.js that I get from "karma init" because of "require not defined" despite not using it
我运行一个简单的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');
})
});
虽然它 运行s,但我得到以下输出:
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?
问题是您的文件列表:
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'
],
我运行一个简单的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');
})
});
虽然它 运行s,但我得到以下输出:
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?
问题是您的文件列表:
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'
],