2013-03-07 20 views
9

Ho setacciato internet cercando una descrizione della cosa che sto cercando di fare ma senza risultato. Mi piacerebbe ottenere test unitari per un front-end web che sto costruendo che viene eseguito direttamente sul codice di produzione caricandolo con PhantomJS dal localhost. Mi piacerebbe eseguire un task Grunt che passa attraverso le mie specifiche dopo aver caricato il sito reale e interagendo con il dom per testare tutto. Sono quasi lì, ma non riesco a caricare la pagina.Qual è il miglior flusso di lavoro per eseguire test di gelsomino sul codice di produzione con grunt?

Se posso aggiungere una voce di host per le opzioni di gelsomino nel mio gruntfile in questo modo:

options: { 
     specs: 'spec/*Spec.js', 
     helpers: 'spec/*Helper.js', 
     vendor: ['app/assets/javascripts/src/libs/jquery-1.9.1.min.js', 'app/assets/javascripts/src/libs/underscore.js'], 
     template: require('grunt-template-jasmine-requirejs'), 
     host: "http://localhost:3000" 
     } 

ottengo un errore di timeout ogni volta. Nessuno ha veramente affrontato questo problema nel contesto di Grunt, quindi non sono sicuro di quale sia la storia, e non ho test asincroni in esecuzione. Se lascio gli host, esegue i test con successo, ma solo sui miei file javascript grezzi attraverso il filesystem locale, non sulla rete locale. Come configuro i miei modelli per consentire ai test Jasmine di funzionare su un host diverso?

UPDATE:

In realtà, sembra che Grunt in realtà non polling contro il server locale, appende appena e timeout.

risposta

6

è necessario avviare un server locale utilizzando grunt-contrib-connect

specificare nella configurazione:

grunt.initConfig({ 
    connect: { 
    server: { 
     options: { 
     port: 3000 
     } 
    } 
    } 
});  

aggiungere a un compito alias:

grunt.registerTask("default", ["connect", "your-jasmine-task"]); 

ed eseguirlo:

$ grunt default 
Problemi correlati