7

प्राप्त करने के लिए मेरे पास ब्राउजरिफा, 6to5ify और कर्म अच्छा खेलने के लिए, सफलतापूर्वक मेरी चश्मा चलाने के लिए है। जब मैं कोड कवरेज जोड़ता हूं, तो चीजें दक्षिण में जाती हैं। मैंने कई दृष्टिकोणों की कोशिश की है:कर्मा, 6to5ify और इस्तांबुल गेंद को

  • browserify-istanbul मेरे karma.conf.js में परिवर्तित करें। हालांकि, इसके परिणामस्वरूप यह मेरी spec-files पर उपकरण चलाने की कोशिश कर रहा है और साथ ही यह दिखाई देगा।
  • मेरी स्रोत फ़ाइलों पर coverage प्रीप्रोसेसर चलाएं। लेकिन क्योंकि इस्तानबुल (यहां तक ​​कि douglasduteil/karma-coverage#next) मेरे 6to5ify ब्राउजिफाइफ़ ट्रांसफॉर्म को नहीं पढ़ता है, यह पहली फ़ाइल पर तुरंत दुर्घटनाग्रस्त हो जाता है (import कथन के कारण), या जब मैं कर्म-कवरेज # का उपयोग करता हूं, तो यह सम्मान नहीं करता browser मैपिंग मेरे पैकेज.जेसन (मोबाइल प्रोजेक्ट, मैप किए गए बैकबोन टू एक्सोस्केलेटन) में मैपिंग।

अभी मेरी karma.conf.js इस तरह दिखता है:

module.exports = function(karma){ 
    karma.set({ 
    frameworks: ["browserify", "mocha", "chai-sinon"], 
    browserify: { 
     debug: true, 
     extensions: [".js", ".hbs"], 
     transform: ["6to5ify", "hbsfy"] 
    }, 
    reporters: ["dots", "osx", "junit", "coverage"], 
    coverageReporter: { 
     type: "text" 
    }, 
    junitReporter: { 
     outputFile: "spec/reports/test-results.xml" 
    }, 
    preprocessors: { 
     "src/javascript/**/*": ["coverage"], 
     "spec/**/*": ["browserify"] 
    }, 
    browsers: ["PhantomJS"], 
    files: ["spec/unit/**/*Spec.js"], 
    logLevel: "LOG_DEBUG", 
    autoWatch: true 
    }); 
}; 

मैं एक तरह से यह कैसे प्राप्त करने के लिए सभी को एक साथ काम कर खो रहा हूँ। मैंने these instructions का पालन करने का प्रयास किया, लेकिन यह काम नहीं किया क्योंकि यह नोड package.json में नहीं आया था। किसी भी तरह की सहायता का स्वागत किया जाएगा।

उत्तर

13

तो, जाहिरा तौर पर मैं browserify-istanbul जरूरत है, और मैं browserify configure हुक की जरूरत है, तो जैसे:

var to5ify = require('6to5ify'); 
var hbsfy = require('hbsfy'); 
var cover = require('browserify-istanbul'); 

var coverOptions = { 
    ignore: ['**/*Spec.js', '**/lib/*.js', '**/fixtures/*.hbs'], 
    defaultIgnore: true 
} 

module.exports = function(karma){ 
    karma.set({ 
    frameworks: ["browserify", "mocha", "chai-sinon"], 
    browserify: { 
     debug: false, 
     extensions: [".js", ".hbs"], 
     configure: function(bundle){ 
     bundle.on('prebundle', function(){ 
      bundle 
      .transform(to5ify) 
      .transform(hbsfy) 
      .transform(cover(coverOptions)); 
     }); 
     } 
    }, 
    reporters: ["dots", "osx", "junit", "coverage"], 
    coverageReporter: { 
     type: "text" 
    }, 
    junitReporter: { 
     outputFile: "spec/reports/test-results.xml" 
    }, 
    preprocessors: { 
     "spec/**/*": ["browserify"] 
    }, 
    browsers: ["PhantomJS"], 
    files: ["spec/unit/**/*Spec.js"], 
    logLevel: "LOG_DEBUG", 
    autoWatch: true 
    }); 
}; 
संबंधित मुद्दे