2015-08-25 12 views
6

के साथ परीक्षण लोड करने का परीक्षण है, मैं एक वेबपैक प्रोजेक्ट पर कर्म परीक्षण धावक स्थापित करने की कोशिश कर रहा हूं जिस पर मैं काम कर रहा हूं। मेरे पास कुछ परीक्षण फाइलें हैं जिन्हें मैंने शामिल करने का प्रयास किया लेकिन कर्म मुझे Error: Path is a file '/_karma_webpack_/app/w/tests/components' देने पर रहता है। MemoryFileSystem इस संदेश के साथ क्यों विफल रहता है? सभी मदद की सराहना की है।पथ एक फ़ाइल त्रुटि कर्मा और वेबपैक

मेरे karma.conf.js:

//Require webpack config rather than duplicating it 
var webpackConfig = require('./webpack.config'); 
webpackConfig.devtool = 'inline-source-map'; 

module.exports = function(config) { 
    config.set({ 
    basePath:'', 
    browsers: ['Chrome_without_sandbox'], // Note: PhantomJS has too outdated WebKit, pre ES5, to work with Browserify 
    singleRun: true, 
    customLaunchers: { 
     Chrome_without_sandbox: { 
      base: 'Chrome', 
      flags: ['--no-sandbox'] // w/ sandbox it fails under Docker 
     } 
    }, 
    frameworks: ['mocha'], 
    files: ['./app/w/tests/**/*-test.js'], 
    webpack: webpackConfig, 
    webpackMiddleware: { 
     noInfo: true 
    }, 
    preprocessors: { 
     './app/w/tests/**/*-test.js' : ['webpack'] 
    } 
    }); 
}; 

मैं require.context साथ फ़ाइलें लोड और उन्हें बंडल कोशिश की, लेकिन परिणाम एक ही है .. तो मैं लगा मुद्दा क्या MemoryFileSystem के रूप में की उम्मीद के साथ हो सकता है इनपुट।

webpack.config.js

var webpack = require('webpack'); 
var bower_dir = __dirname + '/bower_components'; 
var config = { 
    //devtool: 'cheap-module-eval-source-map', 
    devtool: 'eval', 
    entry: { 
    app: ['webpack/hot/dev-server', './app/w/scripts/app.js'] 
    }, 
    resolve: { alias: {} }, 
    output: { 
    path: './app/w/dist', 
    filename: 'app.js', 
    publicPath: '/dist/' 
    }, 
    module: { 
    noParse: [], 
    loaders: [ 
     { test: /\.js$/, loader: 'eslint!babel?optional[]=runtime', exclude: /node_modules/}, 
     { test: /\.json$/, loader: 'json'}, 
     { test: /\.png$/, loader: "url?limit=10000&mimetype=image/png" }, 
     { test: /\.woff$/, loader: "url?limit=10000&mimetype=application/font-woff" }, 
     { test: /\.ttf$/, loader: "url?limit=10000&mimetype=application/octet-stream" }, 
     { test: /\.eot$/, loader: "file" }, 
     { test: /\.svg$/, loader: "url?limit=10000&mimetype=image/svg+xml" }, 
     { test: /\.less/, loader: 'style!css!less'} 

    ] 
    }, 
    plugins: new webpack.optimize.UglifyJsPlugin({ 
    minimize: true, 
    sourceMap: false, 
    }) 
}; 

module.exports = config; 

त्रुटि लॉग:

ERROR [karma]: [Error: Path is a file '/_karma_webpack_/app/w/tests/components'] 
Error: Path is a file '/_karma_webpack_/app/w/tests/components' 
    at MemoryFileSystem.mkdirpSync (/Users/magnuslien/Documents/internprosjekter/woop-frontend/node_modules/karma-webpack/node_modules/webpack-dev-middleware/node_modules/memory-fs/lib/MemoryFileSystem.js:116:10) 
    at MemoryFileSystem.(anonymous function) [as mkdirp] (/Users/magnuslien/Documents/internprosjekter/woop-frontend/node_modules/karma-webpack/node_modules/webpack-dev-middleware/node_modules/memory-fs/lib/MemoryFileSystem.js:193:34) 
    at Tapable.<anonymous> (/Users/magnuslien/Documents/internprosjekter/woop-frontend/node_modules/webpack/lib/Compiler.js:244:27) 
    at /Users/magnuslien/Documents/internprosjekter/woop-frontend/node_modules/webpack/node_modules/async/lib/async.js:187:20 
    at /Users/magnuslien/Documents/internprosjekter/woop-frontend/node_modules/webpack/node_modules/async/lib/async.js:239:13 
    at _arrayEach (/Users/magnuslien/Documents/internprosjekter/woop-frontend/node_modules/webpack/node_modules/async/lib/async.js:91:13) 
    at _each (/Users/magnuslien/Documents/internprosjekter/woop-frontend/node_modules/webpack/node_modules/async/lib/async.js:82:13) 
    at Object.async.forEachOf.async.eachOf (/Users/magnuslien/Documents/internprosjekter/woop-frontend/node_modules/webpack/node_modules/async/lib/async.js:238:9) 
    at Object.async.forEach.async.each (/Users/magnuslien/Documents/internprosjekter/woop-frontend/node_modules/webpack/node_modules/async/lib/async.js:215:22) 
    at Tapable.emitFiles (/Users/magnuslien/Documents/internprosjekter/woop-frontend/node_modules/webpack/lib/Compiler.js:234:20) 

package.json

"devDependencies": { 
    "babel-loader": "^5.3.2", 
    "browserify": "^11.0.1", 
    "karma": "^0.12.31", 
    "karma-chrome-launcher": "^0.2.0", 
    "karma-mocha": "^0.2.0", 
    "karma-sourcemap-loader": "^0.3.5", 
    "karma-webpack": "^1.7.0", 
    "mocha": "^2.2.5", 
    "proxyquireify": "^3.0.0", 
    "webpack": "^1.11.0", 
    "webpack-dev-server": "^1.10.1" 
    } 

उत्तर

5

मैं एक ही समस्या थी।

किसी भी तरह webpack.config.js को एंट्री ऐप रखने की अनुमति नहीं है।

webpackConfig.entry = {};

जोड़े बस लाइन

webpackConfig.devtool = 'inline-source-map'; के तहत अपने karma.conf.js

यह मैं

+0

के लिए काम किया में यह समस्या हल है, धन्यवाद! फिक्स को लागू करने के बाद मुझे एक नया 'त्रुटि: कॉलबैक() मिला: कॉलबैक पहले से ही बुलाया गया था।' त्रुटि, लेकिन मैंने हल किया कि ग्लोब पैटर्न को 'फाइलों' में पुनः लिखकर: ['./app/w/tests/*-test .js '] '। – Magnus

संबंधित मुद्दे