2016-06-14 64 views
0

Ich benutze browserify um all unseren eckigen js Code in eine Datei zu bündeln. Wir benutzen Karma + Jasmin, um diese eine Datei, app.js, zu testen. Im Rahmen der Bündelung, die browserify der Fall ist, spritzt er eine einzige Codezeile am Anfang der Datei:Wie kann ich Browser-generierten Code von Code-Coverage-Nummern ausschließen?

(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ 

Ich habe versucht, eine /*instanbul ignore next*/ oberhalb dieser Linie setzen, aber bewirkt, dass die gesamte Datei ignoriert werden. Diese eine Zeile tötet meine Filialabdeckung. Gibt es diesen generierten Code trotzdem zu ignorieren?

Antwort

0

Es ist immer vorzuziehen, den Komponententest für jede Datei vor dem Bündelprozess zu schreiben. Wenn Sie eine Reihe von Dateien haben, wird es schwierig sein, die Abhängigkeiten nachzuahmen und sie zu verfolgen. Und wir haben nur eine Reihe von Optionen in Istanbul. Und was Sie tun möchten, ist den Funktionsdefinitionskopf zu überspringen. Es gibt keine Möglichkeit, nur diese bestimmte Zeile zu ignorieren. Sie können dieses Problem jedoch lösen, indem Sie den Komponententest in verschiedene Dateien aufteilen. Das ist bevorzugt und leicht zu testen.