2015-11-26 18 views
5

chcę uruchomić moich testów na kilka modułów po WebPack połączył je ze sobą za pomocą testu biegacza karmę, ale gdy uruchomię moich testów Karma mówiJak mogę uzyskać Karma + Webpack, aby znaleźć moduł?

"Error: Cannot find module "hello.js" at http://localhost:9877/base/src/hello.spec.js?d301966ffc1330826574d9d8fff5a644c3390c68:47 "

Mam plik spec:

var a = require('hello.js'); 

describe("a test test", function() { 

    it("humperdink test", function() { 
    expect(a).toEqual('humperdink'); 
    }); //end it 

}); //end describe 

hello.js to:

var a = 'humperdink'; 

module.exports = a; 

Oba te pliki są w tym samym folderze.

Moi karma.conf.js jest:

module.exports = function (config) { 
    config.set({ 
    frameworks: ['jasmine'], 
    files: [ 
     'src/**/*.js', 
     'tests/**/*.spec.js' 
    ], 
    preprocessors: { 
     'tests/**/*.spec.js': ['webpack'], 
     'src/**/*.js' : ['webpack'] 
    }, 
    browsers: ['PhantomJS'], 
    webpack: { 
     entry: './src/hello.spec.js', 
     output: { 
     filename: 'bundle.js' 
     } 
    }, 
    webpackMiddleware: { 
     noInfo: true 
    } 
    }) 
}; 

Obecnie instalowane są moi devDependencies

"devDependencies": { 
    "jasmine-core": "^2.3.4", 
    "jshint": "^2.8.0", 
    "karma": "^0.13.15", 
    "karma-jasmine": "^0.3.6", 
    "karma-jshint-preprocessor": "0.0.6", 
    "karma-phantomjs-launcher": "^0.2.1", 
    "karma-webpack": "^1.7.0", 
    "phantomjs": "^1.9.19", 
    "sinon": "^1.17.2", 
    "webpack": "^1.12.9" 

Jak uzyskać Karma znaleźć moduł hello.js?

Próbowałem zmieniając pierwszą linię pliku spec do rzeczy jak

require('hello.js'); 

lub

require('./hello.js'); 

lub

require('hello'); 

za radą Karma Webpack - Error: Cannot find module "./test/utilities.js"

Nie sądzę, że dzieje się tutaj coś zbyt skomplikowanego, jak, Cannot find module error when using karma-webpack.

Sprawdziłem, aby upewnić się, że biegacz testu Karmy działa inaczej. Jeśli uruchomię naprawdę prosty test we własnym pliku, działa dobrze.

Jak rozwiązać ten problem?

+0

Czy próbowałeś 'require ('../ src/hello');'? –

+0

Zrobiłem, zanim przeniosłem oba pliki do tego samego katalogu. –

Odpowiedz

9

Po skopiowaniu projektu i naprawieniu go. Po https://github.com/webpack/karma-webpack

W spec:

var a = require('../src/hello.js'); 

karma.conf.js:

module.exports = function (config) { 
    config.set({ 
    frameworks: ['jasmine'], 
    files: [ 
     //'src/**/*.js', <-------- Remove or comment this 
     'tests/**/*.spec.js' 
    ], 
    preprocessors: { 
     'tests/**/*.spec.js': ['webpack'], 
     'src/**/*.js' : ['webpack'] 
    }, 
    browsers: ['PhantomJS'], 
    webpack: { 
     entry: './tests/hello.spec.js', 
     output: { 
     filename: 'bundle.js' 
     } 
    }, 
    webpackMiddleware: { 
     noInfo: true 
    } 
    }) 
}; 

karma specs result in terminal

A dodatkowo dla Test npm polecenie: w package.json :

"scripts": { 
    "test": "./node_modules/karma/bin/karma start" 
} 
Powiązane problemy