5

Piszę moją aplikację kątową z testami jednostkowymi karmy i jaśminu. Mam kod w maszynopisie:Jak uzyskać 100% pokrycia kodu oddziału karmy w aplikacji kątowej maszynopisu?

module app { 
    ... 
} 

który generuje javascript aby jak:

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

Teraz gdy uruchamiam karma-zasięg to pokazuje mi, że jeden oddział jest pomijany i to || (app = {})); ten. Dzieje się tak, gdy testuję więcej plików, które mają moduł aplikacji.

Jak mogę przetestować je w jaśminu, aby uzyskać 100% pokrycia gałęzi?

+0

[Stambuł nie używa sourcemaps] (https://github.com/gotwarlost/istanbul/issues/212) jeszcze w celu wykazania pokrycia w TS. Ale przypuszczam, że to wkrótce. Jednak i [chutzpah] (http://stackoverflow.com/questions/17026959/code-colour-for-typescript) obsługuje to. – PSL

+0

Ale czy istnieje jakieś obejście tego problemu? Na końcu jest to po prostu javascript, więc powinien istnieć sposób testowania tego rodzaju generowanej składni? – Marcin

+0

Tak samo na marginesie, zasięg 100% kodu nie oznacza, że ​​kod jest dobrze przetestowany i nie powinien być używany jako jeden czynnik określający, czy testowany kod został poprawnie przetestowany. – Brocco

Odpowiedz

0

Pakiet remap-istanbul powinien być w stanie przekonwertować sprawozdanie z raportu z Stambułu na oryginalny maszynopis podczas kompilowania z plikami typu sourcemaps.

Możesz rzucić okiem na Code Coverage for Typescript

1

Jeśli masz proces kompilacji używając łyk lub grunt, po tym jak twój maszynopis zostanie skompilowany do javascript, można powiedzieć, Stambuł (co karma-pokrycia wykorzystuje do generowania pokrycia kodu) do zignoruj ​​pewne linie (jak te brzydkie linie generowane przez maszynopis).

Można powiedzieć Stambuł zignorować linię za pomocą /* istanbul ignore next */ komentarz

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

oto post wyjaśniający jak to zrobić tylko, że za pomocą łyk.

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

Powiązane problemy