2013-05-21 4 views

risposta

79

Non è così. Karma è solo per testare il codice basato su browser. Se si dispone di un progetto con i test moka sul backend e il karma/moka sul front-end, provare a modificare il vostro package.json sotto script per impostare test per: mocha -R spec && karma run karma.con

Poi, se npm test restituisce vero, saprete che è sicuro da impegnare o distribuire.

+0

Grazie! Ho trovato una soluzione usando Grunt che stavo già pianificando di installare nel mio progetto. Vedi la mia risposta. – Sylvain

+0

Fondamentalmente tutti i test runner per JS si affidano a un browser, quindi? È inutile. –

+4

Moka e Jasmine non fanno affidamento su un browser e quando si desidera eseguire un browser headless, si consideri l'utilizzo di phantomjs. – dankohn

15

Sembra che non sia possibile (grazie @dankohn). Ecco la mia soluzione con Grunt:

  • Karma: aggiornare il vostro file karma.conf.js

    • set autoWatch = false;
    • set singleRun = true;
    • impostato browsers = ['PhantomJS']; (per avere risultati in linea)
  • Grunt:

    • npm install grunt-contrib-watch grunt-simple-mocha grunt-karma
    • configurare i due compiti grugnito (vedere file di grugnito di seguito)

Gruntfile.js:

module.exports = function (grunt) { 
    grunt.loadNpmTasks('grunt-simple-mocha'); 
    grunt.loadNpmTasks('grunt-karma'); 

    grunt.initConfig({ 
    simplemocha: { 
     backend: { 
     src: 'test/server-tests.js' 
     } 
    }, 
    karma: { 
     unit: { 
     configFile: 'karma.conf.js' 
     } 
    } 
    }); 

    // Default task. 
    grunt.registerTask('default', ['simplemocha', 'karma']); 
}; 
  • Grunt (opzionale): setup grunt-watch per iniziare t est su come cambiare i file testati o le specifiche stesse.

  • eseguire tutto utilizzando il comando grunt.

+3

Quindi hai ancora bisogno di un browser, è solo che il browser è senza testa. Quanto inutile, sicuramente non usare il karma per i test lato server. –

+5

Ciao, questo non sta usando il karma per il backend, questo sta usando la moka, quindi nessun browser. Questo è solo un modo conveniente di eseguire tutti i test non appena si salva un file. – Sylvain

+0

Mentre non avevo davvero bisogno del Karma per quello che stavo facendo, questo mi ha portato su un percorso facile per ottenere il setup grunt per eseguire automaticamente i miei test di moka, quindi grazie per questo. –