Dovrei usare Goniometro o Karma per i miei test end-to-end? [chiuso]


124

Dovrei usare Goniometro o Karma per i miei test end-to-end?

Il seme angolare utilizza Protractor / Selenium WebDriver per E2E, ma il tutorial sul telefono angolare utilizza il karma.

Ho letto che dovrei usare Karma per test unitari e Goniometro per E2E, il che sembra buono ma ho pensato di chiedere qui per ottenere le opinioni degli altri sviluppatori.


1
Migliore adattamento ai consigli sul software . Tuttavia, se pubblichi questa domanda, dovrai elaborare le tue esigenze. Meta correlata
Professor Allman,

5
Karma e Goniometro sono entrambi usati e raccomandati dal team angolare, ma dato lo stato della documentazione (cioè: ce ne sono tonnellate ed è difficile sapere cosa è aggiornato) è difficile sapere quale usare e per quale scopo. Questa è una buona domanda e la risposta di Glpretre era esattamente quello che stavo cercando.
Matt

5
Non penso che la domanda fosse troppo ampia (Goniometro vs Karma). Sono i framework di cui stiamo parlando qui, non solo alcuni software, quindi la domanda è nel posto giusto.
CCC

Vedi la mia risposta qui per una discussione più dettagliata di casi d'uso, vantaggi e limitazioni di Karma e goniometro: stackoverflow.com/a/29619467/1614973
Dmitri Zaitsev

La mia comprensione è che Goniometro non consente di testare solo una parte della tua app senza la presenza del resto (ad es. Beffardo): il codice di test non è nemmeno in esecuzione nello stesso interprete JS dell'applicazione. Nessun monitoraggio del file system per modifiche al codice sorgente e riavvio automatico dei test interessati. Il Karma fornisce questi. Invia il codice test + il codice app in <script> s al browser in modo che vengano eseguiti nello stesso interprete, beffardo possibile, ma non è progettato per il test end-to-end con eventi nativi come se un vero utente stesse agendo.
robert4

Risposte:


179

Il team di AngularJS consiglia di utilizzare Protractor in quanto sostituirà il runner per scenari angolari:

Angular Scenario Runner è in modalità manutenzione: se stai avviando un nuovo progetto Angular, considera l'utilizzo di Goniometro .

citato dalla documentazione di AngularJs .

Il tutorial angular-phonecat è stato sviluppato molto tempo fa (principalmente nel 2011) e non è stato ancora aggiornato per utilizzare alcune nuove funzionalità angolari come Protractor.

MODIFICARE

In Documenti sul goniometro - FAQ :

Perché sia ​​il Karma che il Goniometro? Quando uso quale?

Il karma è un ottimo strumento per i test unitari e il goniometro è destinato ai test end-to-end o di integrazione. Ciò significa che piccoli test per la logica dei singoli controller, direttive e servizi devono essere eseguiti utilizzando Karma. I grandi test in cui hai un'istanza in esecuzione dell'intera applicazione devono essere eseguiti con Protractor. Il goniometro ha lo scopo di eseguire i test dal punto di vista di un utente: se il test potrebbe essere scritto come istruzioni per l'interazione umana con l'applicazione, dovrebbe essere un test end-to-end scritto con Protractor.

Ecco un ottimo post sul blog con maggiori informazioni.


11
Dalle domande frequenti su Karma - karma-runner.github.io/0.10/intro/faq.html - Posso usare Karma per eseguire test end-to-end? Karma è stato progettato principalmente per test di basso livello (unità). Se si tratta di un'app AngularJS, è possibile utilizzare Karma con il plug-in karma-ng-scenario, tuttavia si consiglia Protractor per test di alto livello.
mrwaim,

Se voglio test unitari e test e2e, allora devo configurare l'ambiente karma per test unitari e goniometro per test ui o test e2e?
Sunil Garg,

2
@SunilGarg Sì, forse la nostra struttura dell'app di avvio potrebbe aiutarti: github.com/glepretre/angular-requirejs-ready (ignora le specifiche di JS se non lo usi)
glepretre
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.