我在设置业力和测试方面是新手,所以我一直在经历一些例子来设置我的环境。
但是,每当我运行karma start
时,它都会给我这个:
Uncaught ReferenceError: require is not defined
at test/person-test.js:1
我想我可能没有正确设置karma.conf.js
,有没有人有任何线索?这就是我所拥有的:
module.exports = function(config) {
config.set({
basePath: '',
frameworks: ['jasmine', 'browserify'],
files: [
'test/**/*.js'
],
exclude: [],
preprocessors: {
'src/**/*.js': ['browserify']
},
plugins: [
'karma-chrome-launcher',
'karma-jasmine',
'karma-browserify'
],
browserify: {
debug: true,
transform: [ 'brfs', 'browserify-shim' ]
},
reporters: ['progress'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: true,
browsers: ['Chrome'],
singleRun: false,
concurrency: Infinity
})
}
我有这样的文件结构:
.
├── src
| └── person.js
├── test
| ├── person-test.js
├── karma.conf.js
└── package.json
我的person.js
文件是这样的:
class Person {
constructor(name, age) {
this.name = name;
this.age = age;
}
upperCaseName() {
this.name = this.name.upperCaseName();
}
}
module.exports = Person;
和(到目前为止)我的person-test.js
是:
const Person = require('../src/person.js')
答案 0 :(得分:0)
基本上,您需要转换浏览器的源代码,将require调用替换为实际的模块代码。看看这些实用程序:
http://browserify.org/ - 它确实完成了您需要的转换
https://webpack.github.io/ - 一个更复杂的Web打包框架,具有许多其他有用的功能。
更新
Karma是一个在浏览器中运行测试的测试运行器。无论您设置什么浏览器,都不知道需要的功能是什么。
使用jasmine和node try jasmine-node。 https://github.com/mhevery/jasmine-node