2017-06-09 14 views
14

मैं अपने अप्रतिबंधित es6 कोड के लिए कोड कवरेज रिपोर्ट जेनरेट करने के लिए istanbul-instrumenter-loader का उपयोग कर रहा हूं, और जब सब ठीक हो जाता है, तो जेनरेट किए गए HTML आउटपुट में रिपोर्ट किए गए मुद्दे ' टी वास्तविक स्रोत के साथ लाइन लग रहा है।इस्तानबुल-वाद्य यंत्र-लोडर: कवरेज मुद्दे स्रोत से मेल नहीं खाते

उदाहरण के लिए:

Incorrect coverage output

(इस स्थिति में छवि निकाल दिया जाता है) एक const घोषणा है 3 "बयान कवर नहीं करता है, तो" इसके बाद, भले ही इस तरह का कोई बयान या किसी होती है उस लाइन के बाद कोड बिल्कुल।

module.exports = function(config) { 
    config.set({ 
     basePath: '../../', 
     frameworks: [ 'qunit' ], 

     files: [ 
      'test/index.js', 

      // Session tickets 
      { pattern: 'test/tickets/*.json', watched: true, included: false, served: true } 

     ], 

     preprocessors: { 
      'test/index.js': 'webpack' 
     }, 
     webpack: { 
      module: { 
       rules: [{ 
        test: /\.js$/, 
        exclude: /node_modules/, 
        loaders: ['istanbul-instrumenter-loader', 'babel-loader'] 
       }, 
       { 
        test: /\.vue$/, 
        loaders: ['vue-loader'] 
       }, 
       { 
        test: /\.png$/, 
        loaders: ['url-loader'] 
       }] 
      } 
     }, 
     reporters: [ 'coverage-istanbul', 'progress' ], 
     coverageIstanbulReporter: { 
      type: 'html', 
      dir: './coverage' 
      fixWebpackSourcePaths: true 
     }, 
     port: 9876, 
     colors: true, 
     logLevel: config.LOG_INFO, 
     autoWatch: true, 
     browsers: [ 'Chrome' ], 
     browserNoActivityTimeout: 30000, 
     singleRun: true, 
     concurrency: Infinity, 
     client: { 
      captureConsole: true 
     }, 
     browserConsoleLogOptions: { 
      terminal: true, 
      level: '' 
     } 
    }) 
}; 
+0

मैं इसी तरह का सामना करना पड़ रहा हूँ, मेरे सारे कोड 'else', कवर नहीं है, जबकि कोई' else' कवर करने के लिए। क्या आपने इसे हल किया? –

+0

@ हैरीजॉय अभी भी कुछ भी नहीं – tacospice

+0

क्या आप अपनी जेएस फ़ाइल के साथ-साथ spec फ़ाइल – gusaindpk

उत्तर

0

कर्म-कवरेज और: कभी-कभी "में शामिल नहीं बयान" एक वस्तु घोषणा में, या एकाधिक बयान है मेरा कर्मा कॉन्फ़िग फ़ाइल भर में, वगैरह वगैरह

यहाँ एक स्ट्रिंग के बीच में चिह्नित है, या कर्म-webpack आप और अधिक यहाँ https://github.com/webpack-contrib/istanbul-instrumenter-loader

प्राप्त कर सकते हैं आप सही ढंग से कॉन्फ़िगर है एक साथ काम करने

"karma": "^0.12.28", 
"karma-coverage": "^0.2.7", 
"karma-sourcemap-loader": "^0.3.2", 
"karma-webpack": "^1.3.1", 
"webpack": "^1.4.14" 

लगता है, और यू आस प्रदान कर सकते हैं आपके जेएस फ़ाइल/spec

+0

के लिए नमूना भी प्रदान कर सकते हैं, मुझे नहीं पता कि मैंने सही तरीके से कॉन्फ़िगर किया है या नहीं, यह प्रश्न का हिस्सा है। मैंने अपनी विन्यास पोस्ट की, हालांकि। – tacospice

0

के लिए पर्याप्त मेरे पास एक ही समस्या थी और इसे babel-loader से पहले चलाकर हल किया गया।

आप को बदलने के लिए आवश्यकता होगी:

{ 
    test: /\.js$/, 
    exclude: /node_modules/, 
    loaders: ['istanbul-instrumenter-loader', 'babel-loader'] 
} 

साथ:

{ 
    test: /\.js$/, 
    exclude: /node_modules/, 
    use: [ 
     { 
      loader: 'babel-loader' 
     }, 
     { 
      loader: 'istanbul-instrumenter-loader', 
      options: { 
       esModules: true 
      } 
     } 
    ] 
} 
संबंधित मुद्दे