5

Ich schreibe meine Winkelapplikation mit Karma und Jasmin Unit Tests. Ich habe Code in Typoskript:Wie erhalten Sie 100% der Abdeckung des Karma-Filialcodes in der App eckigen App?

module app { 
    ... 
} 

die Javascript wie erzeugt:

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

Nun, wenn ich Karma-Berichterstattung führen Sie es zeigt mir, dass ein Zweig übersprungen und es ist || (app = {})); dieses. Es passiert, wenn ich mehr Dateien testen, die App-Modul bekommen.

Wie kann ich es in Jasmin testen, um 100% Zweigabdeckung zu erhalten?

+0

[Istanbul nicht sourcemaps verwenden] (https://github.com/gotwarlost/istanbul/issues/212) noch um Berichterstattung in TS zu zeigen. Aber rate mal, es kommt bald. Jedoch unterstützt ich [Chutzpah] (http://stackoverflow.com/questions/17026959/code-coverage-for-typescript) es. – PSL

+0

Aber gibt es einen Workaround dafür? Am Ende ist es nur Javascript, also sollte es einen Weg geben, diese Art generierter Syntax zu testen? – Marcin

+0

Nebenbei gesagt, 100% ige Codeabdeckung zeigt nicht an, dass der Code gut getestet wurde und sollte nicht als einziger bestimmender Faktor dafür verwendet werden, ob der getestete Code ordnungsgemäß getestet wurde. – Brocco

Antwort

0

Das Paket remap-istanbul sollte in der Lage sein, den Istanbul-Coverage-Bericht beim Kompilieren mit Quellkarten in das ursprüngliche Typoskript zu konvertieren.

Sie einen Blick auf Code Coverage for Typescript

1

haben können, wenn Sie einen Build-Prozess mit großen Schluck oder Grunzen haben, nach dem Typoskript Javascript erstellt wird, können Sie Istanbul erzählen (was Karma-Berichterstattung verwendet Code-Coverage zu erzeugen) zu ignoriere bestimmte Zeilen (wie diese lästigen typoskript-generierten Zeilen).

Sie können Istanbul sagen, eine Linie unter Verwendung des /* istanbul ignore next */ Kommentars

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

Hier ist ein Beitrag zu ignorieren, zu erklären, wie genau das zu tun, dass Schluck verwenden.

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