5

Scrivo la mia applicazione angolare con test di unità karma e gelsomino. Ho ottenuto il codice a macchina:Come ottenere il 100% della copertura del codice filiale karma nell'app angolare dattiloscritta?

module app { 
    ... 
} 

che genera a JavaScript come:

var app; 
(function (app) { 
... 
})(app || (app = {})); 

Ora quando faccio funzionare il karma-copertura che mi dimostra che un ramo è saltato ed è || (app = {})); questo. Succede quando collaudo più file che hanno il modulo app.

Come posso testarlo in gelsomino, per ottenere una copertura del 100% della filiale?

+0

[Istanbul non usa sourcemaps] (https://github.com/gotwarlost/istanbul/issues/212) ancora al fine di mostrare la copertura in TS. Ma suppongo che arriverà presto. Tuttavia io [chutzpah] (http://stackoverflow.com/questions/17026959/code-coverage-for-typescript) lo supporta. – PSL

+0

Ma c'è qualche soluzione per questo? Alla fine è solo javascript, quindi dovrebbe esserci un modo per testare la sintassi generata dal genere? – Marcin

+0

Proprio come una parte, la copertura del codice al 100% non indica che il codice è ben testato e non dovrebbe essere utilizzato come unico fattore determinante per verificare se il codice testato è stato testato correttamente. – Brocco

risposta

0

Il pacchetto remap-istanbul deve essere in grado di convertire il rapporto di copertura di Istanbul in dattiloscritto originale durante la compilazione con le mappe condivise.

Si può avere uno sguardo a Code Coverage for Typescript

1

Se si dispone di un processo di compilazione utilizzando sorso o grugnito, dopo che il dattiloscritto viene compilato a javascript, si può dire Istanbul (quello che il karma-copertura usa per generare copertura di codice) per ignora determinate righe (come quelle fastidiose righe generate da dattiloscritto).

Si può dire Istanbul di ignorare una linea utilizzando il /* istanbul ignore next */ commento

(function (app) { 
... 
})(/* istanbul ignore next */app || (app = {})); 

Ecco un post che spiega come fare proprio questo utilizzando sorso.

https://stackoverflow.com/a/33024388/1633757