2013-05-02 14 views
60

Sono nuovo di Karma, ma mi chiedo come visualizzare il suo output in un browser (molto simile al modo in cui si interagisce con Jasmine, quando è presente un file runner.html).Visualizza l'output del test Karma in un browser?

ho guardato lo screencast introduttivo e capisco come visualizzare le uscite di test in una finestra di console, ma nel mio browser, ricevo quasi nessun contenuto per Karma tranne

Karma - in contatto

Si prega di avvisare! Vorrei evitare di dover mantenere un file runner.html separato, poiché il file di configurazione di Karma richiede già che io includa tutti i collegamenti di script necessari.

+1

Sulla mia macchina Linux, Karma apre Chromium e dice che è connesso ma chiude immediatamente il browser. E sì, singleRun è falso nella configurazione di Karma. – Stephane

+0

Sto vedendo lo stesso problema @Stephane Eybert, l'hai risolto? – ChrisFletcher

+0

@ChrisFletcher Ho cambiato da Chrome a PhantomJS nel file test/karma.conf.js, con questo: browser: [ 'PhantomJS' // 'Chrome' ], – Stephane

risposta

2

Un'opzione è di aprire la console Javascript nel browser. Karma crea una voce di registro per ciascun test, incluso il risultato.

9

È necessario eseguirlo con singleRun = false in karma.conf.js e quindi fare clic sul pulsante nell'angolo in alto che dice "DEBUG". Quindi dovresti vedere l'output e non scomparirà né si chiuderà. Potrai anche usare la console per eseguire il debug.

Vale la pena notare che eseguire il debug di test e2e non è così semplice perché sono basati su "futuri" in modo da non essere in grado di intercettare i valori (afaik).

+0

Questo non funziona per me @Chris, So che questa è una vecchia risposta, ma hai qualche suggerimento sul perché questo potrebbe essere il caso? – ChrisFletcher

+0

Scusate, è passato un po 'di tempo e non uso Karma come spesso ultimamente. Molto probabilmente è cambiato. –

25

AFAIK, le due risposte precedenti sono corrette in quanto si desidera eseguire i test in un browser; fare clic su DEBUG e visualizzare l'output nella console.

Contrariamente alla risposta precedente, eseguo regolarmente questo debug e eseguo il debug con interazione piena e variabile utilizzando Karma.

La risposta corretta alla tua domanda, perché quello che vuoi è un output piuttosto basato su HTML, è "no". Tuttavia, questo plugin per il karma può darti i risultati che desideri.

https://npmjs.org/package/karma-html-reporter

+0

Grazie avrei dovuto dire che è necessario aprire la console per vedere qualcosa, non solo per eseguire il debug dei test. Dovrei controllare quel giornalista. –

+0

grazie bra bella !! –

2

volevo visualizzare HTML5 Web Notifications con il Karma così ho scritto qualcosa di veloce per farlo funzionare con il Karma versione 0.11. Potrebbe comportarsi in modo leggermente diverso con altre versioni. Carico questo script con il resto degli script dell'applicazione, memorizzerò i risultati del test del karma e dopo il completamento determinerà il successo del test e quindi ripristinerà le funzioni del karma originale in modo che non vengano cambiate quando viene eseguito questo script ancora.

// store all my test results 
var results = []; 
// Wrap the karma result function 
var resultFunc = window.__karma__.result; 
window.__karma__.result = function(result){ 
    // run the original function 
    resultFunc(result); 
    // push each result on my storage array 
    results.push(result); 
} 

// wrap the karma complete function 
var completeFunc = window.__karma__.complete; 
window.__karma__.complete = function(result){ 
    // run the original function 
    completeFunc(result); 
    // determine success 
    var success = results.every(function(r){ return r.success }); 

    if (success) { 
     // display a success notification 
    } 
    else { 
     // display a test failure notification 
    } 

    // reset the result function 
    window.__karma__.result = resultFunc; 
    // reset the complete function 
    window.__karma__.complete = completeFunc; 
} 
Problemi correlati