2013-04-29 2 views
10

Я полный noob с Жасмин и RequireJS, поэтому любая помощь приветствуется.Конфигурирование Grunt, Жасмин и RequireJS вместе

Мы имеем следующую структуру каталогов

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

Я пытаюсь настроить Жасмин + Grunt + RequireJS запустить свои тесты, однако я получаю следующее сообщение об ошибке, когда я бегу мое ворчание задача хрюкать жасмин Я просмотрел ошибку на сайте RequireJS, но, на мой взгляд, все на месте.

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

Вот моя установка Жасмин в моих gruntfile.js

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> 

Где я ошибаюсь, что я могу исправить?

ответ

10

Ну я получил это работает, пришлось внести следующие изменения в конфигурации Жасмин в моем Gruntfile.js

baseUrl: './assets/' 

Это необходимо активизировать один каталог вверх.

+0

Вы можете принять свой собственный ответ. Это полезно для дальнейшего использования! – thomaux

+0

Для потомков: '.' означает текущий каталог, а' ..' - один каталог. Если вы начнете путь с '/', он перейдет на корневой уровень. На стороне клиента это означает корневой URL-адрес, на стороне сервера - корневой путь файловой системы. – Spoike

2

Когда вы указываете Grunt Jasmine's, чтобы использовать /assets как ваш basePath, он будет искать в вашем абсолютном пути /assets, что означает, что вы будете говорить, чтобы хрюкать, чтобы посмотреть в корневой путь файловой системы.

Смежные вопросы