2015-12-22 16 views
5

So che Karma è un corridore di prova per quadri di test unità JS come Jasmine o Mocha. E PhantomJS fornisce un browser headless per l'esecuzione di test Jasmine o Mocha.qual è la differenza tra karma e phantomJS

Ma qual è la differenza tra Karma e PhantomJS? Sono due strumenti in competizione o uso PhantomJS su Karma per eseguire i miei test unitari senza browser?

risposta

25

PhantomJS non ha nulla a che fare con il test. Nell'ambito di prova dell'unità sarebbe diventato uno dei browser di destinazione.

PhantomJS consente di eseguire test di unità in un browser quando non esiste un ambiente desktop.

Karma è un corridore che fornisce i report completi sulla riuscita dei test.

Jasmine è la libreria utilizzata per scrivere le unit test.

Quindi, per chiarire

Jasmine test unità sono gestite da Karma all'interno del browser PhantomJS.

4

Sembra che tu abbia già già risposto alla tua domanda, ma io espanderò quello che hai menzionato.

Karma è un framework di test in esecuzione che è in gran parte indipendente dal linguaggio del framework di test. Ha un ricco ecosistema di plug-in che ti consente di personalizzare pesantemente come, quando e perché eseguire i test.

Per testare Javascript, abbiamo spesso bisogno di testare contro una incarnazione del DOM. Ci sono numerosi plugin che ti permettono di collegare diversi browser come karma-chrome. Questi plugin eseguono il bootstrap del browser richiesto ed eseguono i test sul browser.

Tuttavia, ci sono momenti in cui si desidera eseguire senza un browser fisico installato nella casella di test di destinazione. è qui che entra in gioco PhantomJS. È un browser headless che può essere eseguito senza essere installato su un computer di destinazione. Non può sostituire il Karma. Se vuoi descriverlo come un "concorrente", sarebbe un concorrente di IE, Firefox, Chrome e Safari.

+0

Quindi, se ho bisogno di eseguire i miei test sui browser (ad esempio sui laptop degli sviluppatori), userei solo Karma e quando voglio eseguire i miei test sul mio server CI, utilizzerei Karma + PhantomJS? – Rohan

+0

Dovresti ancora scegliere/targetizzare un browser sui laptop degli sviluppatori. PhantomJS funziona bene, così come Chrome. Tieni presente che se devi eseguire il debug dei test (e probabilmente lo farai), Chrome o un altro browser è molto più semplice. Personalmente eseguo https://github.com/karma-runner/karma-chrome-launcher sul mio computer di sviluppo e https://github.com/karma-runner/karma-phantomjs-launcher sui server Ci. –