我有一个关于将茉莉花与Grunt一起使用的问题。我一直收到错误,
ReferenceError:找不到变量:require
每当我进行茉莉花测试时。这是我的Gruntfile.js的茉莉花条目:
jasmine: {
js: {
src: jsFiles,
options: {
specs: 'tests/*_spec.js',
helpers: 'tests/helpers/*',
vendor: 'vendor/*'
}
}
},
我可以在没有要求的情况下运行虚拟测试,但是当我在测试中包含require时,我会收到require错误。
var testD = require('../src/events_to_actions');
describe("events_to_actions", function() {
it("is dummy test", function() {
expect(true).toEqual(true);
});
});
答案 0 :(得分:7)
我遇到了同样的问题。只需安装此节点包并将此行添加到您的Gruntfile,并且需要再次开始工作。
https://github.com/cloudchen/grunt-template-jasmine-requirejs
jasmine: {
js: {
src: jsFiles,
options: {
specs: 'tests/*_spec.js',
helpers: 'tests/helpers/*',
vendor: 'vendor/*',
template: require('grunt-template-jasmine-requirejs')
}
}
},
答案 1 :(得分:4)
@ user3741597 建议的解决方案可能有效,但这是一个向后的解决方案。
“grunt-template-jasmine-requirejs”是为RequireJS编写的,它是一个AMD加载程序。另一方面,您使用的是CommonJS语法。如果你想继续使用“grunt-contrib-jasmine”,那么你需要找到一个CommonJS模板,或者使用Jasmine has node support built-in的信息并采取不同的方法。
This post也可能会有所帮助。
答案 2 :(得分:0)
由 @ justin-helmer 引入解决方案,有一个模板允许您对grunt-contrib-jasmine使用require调用(CommonJS语法):
https://www.npmjs.com/package/grunt-template-jasmine-nml
使用此命令的grunt配置示例:
jasmine: {
options: {
template: require('grunt-template-jasmine-nml'),
helpers: 'spec/helpers/**/*.js',
specs: 'spec/**/*.spec.js'
}
}