10

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

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

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>

我哪里出错了,我能做些什么来解决它?

4

2 回答 2

10

好吧,我让它运行起来了,必须在我的Gruntfile.js中的 Jasmine 配置中进行以下更改

baseUrl: './assets/'

它需要上一级目录。

于 2013-04-29T22:23:21.940 回答
2

当您指定 Grunt Jasmine/assets用作您的 basePath 时,它将在您的绝对/assets路径中查找,这意味着您将告诉 grunt 在您的文件系统根路径中查找。

于 2013-05-11T04:05:42.017 回答