2013-06-25 13 views
30

ho abbastanza semplice karma.config.js presentareHai bisogno di una corretta reporter per il gelsomino karma

basePath = '../'; 


files = [ 
    JASMINE, 
    JASMINE_ADAPTER, 
    'js/lib/angular*.js', 
    'test/lib/angular/angular-mocks.js', 
    'js/**/*.js', 
    'test/unit/**/*.js' 
]; 

autoWatch = true; 
browsers = ['PhantomJS']; 


Quando eseguo karma start config/karma.conf.js --single-run sto ottenendo il seguente output

$ karma start config/karma.conf.js --single-run 
[2013-06-24 23:47:08.750] [DEBUG] config - autoWatch set to false, because of singleRun 
INFO [karma]: Karma server started at http://localhost:9876/ 
INFO [launcher]: Starting browser PhantomJS 
INFO [PhantomJS 1.9 (Mac)]: Connected on socket id LwMoWxzIbSUuBsvIqB_m 
PhantomJS 1.9 (Mac): Executed 6 of 6 SUCCESS (0.073 secs/0.02 secs) 

ho cercavo qualcosa per dirmi come ottenere l'output dei test che vengono registrati (ad es. SUCCESS Unit: services myService should behave)

L'unico modo che posso vedere l'output dei test è di aprire Chrome e fare clic su "Debug", quindi mostrare la console degli strumenti per sviluppatori. Voglio che i messaggi vengano registrati al terminale, ma non riesco a capire come farlo funzionare.

+1

Terribile tittle per questa domanda – ErichBSchulz

+2

Sì. Se ricordo bene, ho digitato quel titolo dopo aver cercato di capirlo troppo a lungo. È una buona cosa che Google cerchi più dei titoli. – blockloop

+0

@ brettof86 Qualcuno ha storpiato il titolo di questa domanda. Ovviamente non ha nulla a che fare con l'HTML quando legge la domanda stessa. Stavo per provare a sostituire il titolo, ma dopo aver pensato un po ', non credo di aver capito abbastanza la domanda per farlo. (Ciò che non è chiaro per me è se stai cercando un meccanismo di report semplice o se vuoi catturare qualche forma di output all'interno del test stesso.) Potresti modificarlo? – jpmc26

risposta

64

risolto installando il karma-spec-reporter

npm install karma-spec-reporter --save-dev

e l'aggiunta di questo i miei karma.config.js

reporters: ['spec'],

Secondo karma documentation

Per impostazione predefinita, carichi Karma un I moduli NPM che sono fratelli e il loro nome corrisponde a karma- *.

ma alcuni utenti hanno dovuto aggiungere il seguente alla loro configurazione

plugins: ['karma-spec-reporter']

+6

Non ha funzionato per me finché non ho specificato nel file karma.conf.js karma-spec-reporter come plugin; questo è come il mio allineamento plugin sembra plugins: [ 'karma-cromo-launcher', 'il karma-riempimento', 'il karma-firefox-launcher', 'il karma-gelsomini', 'il karma-JUnit-giornalista' , 'karma-spec-reporter' ], nota karma-spec-reporter alla fine –

+0

Sì, devi dire al config che stai usando questo plugin. – blockloop

+1

Se tutti i plugin iniziano con 'karma-' allora non devi fare riferimento a nessuno di essi. Il comportamento predefinito è caricare tutti i plugin 'karma- *'. http://karma-runner.github.io/0.12/config/plugins.html –

1

Ecco il mio lavoro (bozza) configurazione senza la sezione 'plugins' (in realtà non capisco pienamente perché dovrei essere necessario specificare loro ...):

package.json

"devDependencies": { 
    [...] 
    "grunt-karma": "~0.9.0", 
    "karma": "~0.12.24", 
    "karma-jasmine": "~0.2.3", 
    "karma-chrome-launcher": "~0.1.5", 
    "karma-phantomjs-launcher": "~0.1.4", 
    "karma-spec-reporter": "0.0.13" 
    } 

karma.conf.js

module.exports = function (config) { 
    config.set({ 
     frameworks: ['jasmine'], 
     reporters: ['spec'], 
     browsers: ['PhantomJS'] 
    }); 
}; 

Gruntfile.js

karma: { 
     options: { 
      configFile: 'karma.conf.js', 
      files: [ 
       'app/libs/angular.js', 
       'app/libs/angular-resource.js', 
       'app/libs/angular-route.js', 
       [...] 
       'app/modules/**/*-spec.js' 
      ] 
     }, 
     unit: { 
      singleRun: true 
     } 
    } 

Ora, quando corro grunt karma messaggi dai file *-spec.js (describe('message', function() ...)) vengono visualizzati bene nella console.

1

Solo un altro dettaglio - se si mantiene il reporter di default 'progresso' nei karma.config.js, come di seguito:

reporters: ["progress", "spec"] 

o un altro giornalista della console, il "spec" uscita giornalista ha vinto' lavoro.

Si consiglia di conservare solo la "specifica", o la "specifica" con altri reporter del browser. Ad esempio:

reporters: ["spec", "coverage"] 
Problemi correlati