2013-04-29 10 views
10

Ich bin ein komplettes noob mit Jasmine und RequireJS, so dass jede Hilfe geschätzt wird.Konfigurieren Grunt, Jasmine und RequireJS alle zusammen

Wir haben die folgende Verzeichnisstruktur

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

ich Setup Jasmin + Grunt + RequireJS ich versucht, meine Tests laufen jedoch halte ich die folgende Fehlermeldung erhalten, wenn ich meine Grunzen Aufgabe Grunzen Jasmin laufen Ich habe den Fehler auf der RequireJS Website überprüft, aber meiner Meinung nach ist alles vorhanden.

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

Hier ist meine Jasmin Setup in meinem 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' 
       } 
      } 
     } 
    } 

Hier ein toter einfachen Test spec :)

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

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

RequireJS in meinem Projekt funktioniert gut ist , hier ist das Setup, das ich für das ausführen ...

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

Wohin gehe ich falsch, was kann ich tun, um es zu beheben?

Antwort

10

Nun, ich habe es ausgeführt wird, hatte die folgende Änderung in der Jasmin-config in meinem Gruntfile.js

baseUrl: './assets/' 

Es ein Verzeichnis bis Schritt erforderlich zu machen.

+0

Sie können Ihre eigene Antwort akzeptieren. Es ist nützlich für zukünftige Referenz! – thomaux

+0

Für Nachwelt: '.' bedeutet aktuelles Verzeichnis und' ..' ist ein Verzeichnis. Wenn Sie einen Pfad mit '/' starten, wird es auf root-Ebene gehen. Auf der Client-Seite bedeutet das Root-URL, auf der Serverseite den Dateisystem-Root-Pfad. – Spoike

2

Wenn Sie Grunt Jasmine's angeben, um /assets als Ihr basePath zu verwenden, wird es in Ihrem absoluten /assets Pfad suchen, das bedeutet, dass Sie sagen werden, um in Ihrem Dateisystemstammpfad zu suchen.

Verwandte Themen