Я хочу запустить свои тесты на куче модулей после того, как webpack объединит их вместе с помощью средства запуска тестов Karma, но всякий раз, когда я запускаю свои тесты, Karma говорит:
«Ошибка: не удается найти модуль «hello.js» по адресу http://localhost:9877/base/src/hello.spec.js?d301966ffc1330826574d9d8fff5a644c3390c68:47"
У меня есть файл спецификации:
var a = require('hello.js');
describe("a test test", function() {
it("humperdink test", function() {
expect(a).toEqual('humperdink');
}); //end it
}); //end describe
hello.js это:
var a = 'humperdink';
module.exports = a;
Оба эти файла находятся в одной папке.
Мой karma.conf.js:
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
}
})
};
В настоящее время мои установленные 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"
Как заставить Karma найти модуль hello.js?
Я попытался изменить первую строку файла спецификации на такие вещи, как
require('hello.js');
or
require('./hello.js');
or
require('hello');
по совету Karma Webpack - Ошибка: не удается найти модуль./ test/utilities.js
Я не думаю, что здесь происходит что-то слишком сложное, например, Не удается найти ошибка модуля при использовании karma-webpack.
Я проверил, чтобы убедиться, что бегун тестов Karma работает иначе. Если я запускаю действительно простой тест в своем собственном файле, он работает отлично.
Как решить эту проблему?
require('../src/hello');
? - person Henrik Andersson   schedule 26.11.2015