2014-12-22 12 views
8

Używamy istanbul do pokrycia kodu w naszych testach karmicznych. Działa to doskonale do śledzenia kodu śledzenia naszych testów jednostkowych w JavaScript. Nie uwzględnia to jednak pokrycia kodu w naszych szablonach HTML.Pokrycie kodu dla szablonów html AngularJS

Mamy bardzo mało logiki w naszych szablonach, ale wciąż istnieje złożoność, którą chcemy śledzić i upewnić się, że poprawnie uwzględniliśmy nasze testy. Jakie są najlepsze praktyki, aby zapewnić odpowiednie pokrycie wszystkich szablonów HTML. W naszym szczególnym przypadku używamy ng-if i ng-switch. Chcielibyśmy upewnić się, że wszystkie gałęzie są odpowiednio pokryte.

Odpowiedz

0

Niestety, stambuł i karma zostały opracowane w celu testowania szablonów JavaScript, a nie HTML. Ponieważ twoje instrukcje ng-if i ng-switch prawdopodobnie wpłyną na to, co jest/nie jest wyświetlane na stronie, możesz rozważyć użycie kompleksowego zestawu Angular, Protractor. Zgodnie z moją wiedzą, nie ma narzędzia do kompleksowego testowania od końca do końca.

+0

Dzięki temu używamy kątomierza do niektórych rodzajów testów. Są zorientowane na testy integracyjne front-end + back-end. Testy te są używane do testowania scenariuszy użytkownika i nie są testami jednostkowymi. Zakres kodu nie ma znaczenia dla tych testów (zakres scenariuszy jest). Mamy testy jednostkowe, które testują interakcję z DOM (gdzie back end jest zgaszony). I śledzimy nasz zasięg kodu JS, ale nie mamy możliwości śledzenia naszego zasięgu szablonów. –

+0

Rozumiem ten problem. Obecnie nie znam żadnych rozwiązań. Byłby interesującym widelcem open-source w Stambule do testowania html. – Adam

+0

Tak, musiałaby głęboko zagłębić się w szablon szablonów kątowych, ponieważ musiałaby zasłonić skompilowany szablon, a następnie jakoś odwzorować pokrycie z powrotem na oryginalny plik. Niełatwe. –

1

Chociaż można uzyskać raportów pokrycia z Stambuł za pośrednictwem wtyczek firm trzecich (https://www.npmjs.com/package/protractor-istanbul-plugin), problem w tym, że w przeciwieństwie do React lub innych bibliotek, które przekształcają szablony (JSX) do javascript DOM manipulacji, kątowe nie narażają wygenerowany DOM w sposób, który jest wykonalny dla oprzyrządowania niezbędnego do generowania raportów pokrycia.

Powiązane problemy