将Grunt,Jasmine和RequireJS配置在一起

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>

我哪里做错了,我该怎么修复它?

2个回答

10

好的,我已将其运行起来,不过需要在我的Gruntfile.js中的Jasmine配置文件进行以下更改。

baseUrl: './assets/'

需要向上一级目录跳转。


你可以接受自己的答案。这对未来参考非常有用! - thomaux
为了后代:表示当前目录,..表示上一级目录。如果您以/开头的路径,它将进入根级别。在客户端方面,这意味着根URL,在服务器端则是文件系统根路径。 - Spoike

2

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接