一起配置Grunt,Jasmine和RequireJS

Bar*_*ndB 10 requirejs jasmine gruntjs

我是Jasmine和RequireJS的完整菜鸟,所以任何帮助都表示赞赏.

我们有以下目录结构

/assets
      /libs <- populated by Jam
      /scripts
/tests
Run Code Online (Sandbox Code Playgroud)

我正在尝试设置Jasmine + Grunt + RequireJS来运行我的测试但是我一直得到以下错误,当我运行我的grunt任务grunt jasmine我已经检查了RequireJS网站上的错误但在我看来一切都已到位.

Error: scripterror: Illegal path or script error: ['scripts/MyModule']
Run Code Online (Sandbox Code Playgroud)

这是我的gruntfile.js中的 Jasmine设置

jasmine: {
    src: 'assets/scripts/**/*.js',
    options: {
        specs: 'tests/*spec.js',
        template: require('grunt-template-jasmine-requirejs'),
        templateOptions: {
            requireConfig: {
                baseUrl: '/assets',
                paths: {
                'jquery': 'libs/jquery/dist/jquery'
                }
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

这是一个死的简单测试规范 :)

require(['scripts/MyModule'], function (myModule) {
    'use strict';

    describe('A suite', function() {
        it('should pass this test', function() {
            expect(myModule).not.toBe(null);
        });
    });
});
Run Code Online (Sandbox Code Playgroud)

RequireJS在我的项目中工作正常,这是我为此运行的设置......

<script>
var require =
{
    baseUrl: '/assets'
};
</script>
<script src="/assets/libs/require.js"></script>
Run Code Online (Sandbox Code Playgroud)

我哪里出错了,我该怎么做才能解决它?

Bar*_*ndB 10

好吧,我让它运行,不得不在我的Gruntfile.js中的Jasmine配置中进行以下更改

baseUrl: './assets/'
Run Code Online (Sandbox Code Playgroud)

它需要步骤一个目录.