一起配置Grunt,Jasmine和RequireJS

时间:2013-04-29 21:18:26

标签: requirejs jasmine gruntjs

我是Jasmine和RequireJS的完整菜鸟,所以感谢任何帮助。

我们有以下目录结构

/assets
      /libs <- populated by Jam
      /scripts
/tests

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

Error: scripterror: Illegal path or script error: ['scripts/MyModule']

这是我的 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'
                }
            }
        }
    }

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

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

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

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

<script>
var require =
{
    baseUrl: '/assets'
};
</script>
<script src="/assets/libs/require.js"></script>

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

2 个答案:

答案 0 :(得分:10)

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

baseUrl: './assets/'

需要步骤一个目录。

答案 1 :(得分:2)

当您指定Grunt Jasmine使用/assets作为基本路径时,它将查找您的绝对/assets路径,这意味着您将咕噜咕噜地查看文件系统根路径