5

Sto cercando i puntatori verso uno strumento che può aiutarmi a determinare la copertura dell'automazione funzionale in nodeJs. (Questo non è Test di unità!).CodeCoverage per l'automazione funzionale nelle applicazioni NodeJS

Ho un sacco di automazione del selenio in esecuzione per la mia applicazione di frontend scritta in NodeJS. Ma voglio sapere la copertura funzionale di queste automazioni.

(ho usato jacoco per Java basato in precedenza)

+0

Sono pronto ad aumentare la taglia per questa domanda. Come lo posso fare? – footy

+0

Hai provato [Istanbul] (https://github.com/gotwarlost/istanbul)? Ti fornirà copertura di linea, copertura delle filiali, ecc. – GilZ

+0

sì, ho provato per i test unitari ma non per i test sul selenio. come posso farlo – footy

risposta

1

La risposta a questa domanda è quello di avere istanbul-middlewarehttps://github.com/gotwarlost/istanbul-middleware

istanbul e istanbul-middleware sono diversi e deve essere installato separatamente. Ho strumentato con successo il codice usando questo. I passaggi sono i seguenti

  1. aggiungere istanbul-middleware alla vostra applicazione nodejs
  2. aggiungere il codice di strumentazione all'interno del vostro avvio dell'applicazione. L'esempio è dato in github.
  3. Quindi avviare il server del nodo ed eseguire i test di selenio nuovamente.
  4. se si esegue in localhost, quindi è possibile passare a /coverage (o se è stato modificato dall'esempio github modificarlo qui) e ottenere le informazioni sulla copertura.

Leggere il file github per ulteriori dettagli.

+0

Sono abbastanza curioso di sapere se c'è un modo per unire i risultati dei test attraverso varie serie di test. Durante il test dell'API sto portando su il mio server Node con vari parametri in diversi test per colpire tutti i tipi di casi limite. – sakovias

2

Come menzionato in uno dei commenti, istanbul è davvero un bel molto generico, strumento, la copertura. Funziona come un intermediario tra il processo del nodo e i tuoi script, quindi finché esegui qualcosa nel runtime del nodo, dovrebbe fare ciò che vuoi. Io non sono sicuro di come si esegue il test di selenio, ma corro moka attraverso di essa in questo modo:

node ./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- test/*-test.js 
#or simply: 
./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha -- test/*-test.js 

Anche se moka funziona generalmente come propria "comando", che può essere "alimentato" in Istanbul e la copertura è stampata in questo modo. Quindi nel tuo caso, qualunque comando tu usi per eseguire i test di frontend nel nodo/selenio può essere eseguito a istanbul. Come ho detto, questo è un processo molto generico che può essere applicato a qualsiasi cosa venga eseguita all'interno di node.js.

Ora non ho molta esperienza con Selenium, ma quello che so è che è un po 'uno Rube Goldberg system con molti processi interconnessi (alcuni potenzialmente su macchine diverse). Se stai cercando qualcosa per catturare sia front-end, backend e codice di test (o codice frontend in esecuzione nel browser, servito da codice back-end) in una riga, non sono sicuro che esista ("frontend application scritto in NodeJS" è ciò che mi ha convinto in questo).

Problemi correlati