【问题标题】:Configuring Grunt, Jasmine and RequireJS all together一起配置 Grunt、Jasmine 和 RequireJS
【发布时间】:2013-04-29 21:18:26
【问题描述】:

我完全是 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>

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

【问题讨论】:

    标签: requirejs jasmine gruntjs


    【解决方案1】:

    我让它运行起来了,必须在我的 Gruntfile.js

    中对 Jasmine 配置进行以下更改
    baseUrl: './assets/'
    

    需要上一级目录。

    【讨论】:

    • 您可以接受自己的答案。供日后参考!
    • 对于后代:. 表示当前目录,.. 是上一个目录。如果您以/ 开始路径,它将进入根级别。在客户端,这意味着根 url,在服务器端,文件系统根路径。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-30
      • 1970-01-01
      • 2017-01-13
      相关资源
      最近更新 更多