2013-04-29 14 views
10

Sono un noob completo con Jasmine e RequireJS quindi qualsiasi aiuto è apprezzato.Configurazione di Grunt, Jasmine e RequireJS tutti insieme

Abbiamo la seguente struttura di directory

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

che sto cercando di impostare Jasmine + Grunt + RequireJS per eseguire i miei test però continuo a ricevere il seguente errore, quando eseguo il mio compito grunt grunt gelsomino Ho esaminato l'errore sul sito RequireJS ma a mio avviso tutto è a posto.

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

Qui è la mia messa a punto del gelsomino nei miei 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' 
       } 
      } 
     } 
    } 

Ecco un semplice test morto spec :)

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

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

RequireJS funziona bene nel mio progetto , ecco il setup che eseguo per quello ...

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

Dove sto andando male, cosa posso fare per risolverlo?

risposta

10

Beh ho avuto in esecuzione, ha dovuto fare la seguente modifica nella configurazione Jasmine nel mio Gruntfile.js

baseUrl: './assets/' 

E 'necessario intensificare una directory in su.

+0

È possibile accettare la propria risposta. È utile per riferimenti futuri! – thomaux

+0

Per i posteri: '.' significa directory corrente e' ..' è una directory. Se inizi un percorso con '/', andrà a livello di root. Sul lato client che significa URL radice, sul lato server il percorso root del filesystem. – Spoike

2

Quando specifichi a Grunt Jasmine di utilizzare /assets come basePath, cercherà nel tuo percorso assoluto /assets, che significa che dovrai dire a grugnire per cercare nel tuo percorso root del filesystem.

Problemi correlati