Wir verwenden istanbul für die Codeabdeckung in unseren Karmatests. Dies funktioniert hervorragend, um die Codeabdeckung unserer Komponententests in JavaScript nachzuverfolgen. Dies erfasst jedoch nicht die Codeabdeckung in unseren HTML-Vorlagen.
Wir haben sehr wenig Logik in unseren Vorlagen, aber es gibt immer noch eine Komplexität, die wir verfolgen und sicherstellen wollen, dass wir sie in unseren Tests richtig abgedeckt haben. Was sind die besten Praktiken, um sicherzustellen, dass Sie alle Ihre HTML-Vorlagen korrekt abdecken? In unserem speziellen Fall verwenden wir ng-if und ng-switch. Wir möchten sicherstellen, dass alle Filialen ordnungsgemäß abgedeckt sind.
Sie können Abdeckungsberichte von Istanbul über Drittanbieter-Plug-Ins ( Ссылка ) erhalten, das Problem Anders als React oder andere Bibliotheken, die Templates (JSX) in Javascript-DOM-Manipulationen konvertieren, stellt Angular das generierte DOM nicht so dar, wie es für die Instrumentierung erforderlich ist, die zur Erstellung von Coverage-Berichten erforderlich ist.
Leider wurden Istanbul und Karma entwickelt, um JavaScript und nicht HTML-Templates zu testen. Da sich Ihre ng-if- und ng-switch-Anweisungen wahrscheinlich darauf auswirken, was auf der Seite angezeigt wird oder nicht, sollten Sie die End-to-End-Suite von Angular verwenden, . Nach meinem Wissen gibt es kein Coverage-Tool für die End-to-End-Tests.
Tags und Links html angularjs code-coverage istanbul