【发布时间】:2014-12-15 22:46:13
【问题描述】:
我有一个使用 requireJS 的应用程序,我想使用 grunt-contrib-jasmie 来测试它。为了让 jasmine 与 require 一起工作,我正在使用 cloudchen 的 grunt-template-jasmine-requirejs。该应用程序具有以下目录结构:
topLevelApplicationFolder
|_app.html
|_Gruntfile.js
|_package.json
|_js
|_app.js
|_app
|_modules
|_rgbaHelpers.js
|_main.js
|_lib
|_require.js
|_spec
|_rgba_spec.js
app.js 是我的 requireJS 配置文件:
requirejs.config({
baseUrl: "js/lib",
paths: {
app: "../app"
},
shim: {
spectrum: {
deps: ["jquery"],
exports: "spectrum"
}
}
});
// Load the main app module to start the app
requirejs(["app/main"]);
我的 Gruntfile.js 如下:
module.exports = function(grunt) {
// Project configuration.
grunt.initConfig({
jasmine : {
taskName: {
src : 'js/**/*.js',
options : {
specs : 'spec/**/*.js',
template: require('grunt-template-jasmine-requirejs'),
templateOptions: {
requireConfig: {
baseUrl: 'js/lib'
}
// requireConfigFile: './js/app.js'
}
}
}
},
jshint: {
all: [
'Gruntfile.js',
'js/**/*.js',
'spec/**/*.js'
],
options: {
jshintrc: '.jshintrc'
}
}
});
grunt.loadNpmTasks('grunt-contrib-jasmine');
grunt.loadNpmTasks('grunt-contrib-jshint');
grunt.registerTask('test', ['jshint', 'jasmine']);
grunt.registerTask('default', ['test']);
};
rgba_spec.js 是我想要运行的测试。很简单:
define(['js/app/modules/rgbaHelpers'], function (rgbaHelpers) {
describe('A suite', function() {
it('should pass this test', function() {
expect(rgbaHelpers).not.toBe(null);
});
});
});
但是当我运行 grunt jasmine 时出现以下错误:
Error: scripterror: Illegal path or script error: ['js/app/modules/rgbaHelpers']
我整天都在为这件事摸不着头脑。有谁知道这里发生了什么?
【问题讨论】:
标签: javascript requirejs gruntjs jasmine