Я использую webpack с карма-мокча-чаем для модульного тестирования моего проекта Angular.
при установке тестовой среды я столкнулся с ошибкой ниже:
karma start
05 06 2016 18:29:04.739:ERROR [config]: Invalid config file!
TypeError: Path must be a string. Received { vendor: [ 'jquery', 'angular' ],
bundle: [ 'babel-polyfill', './src/app.js' ] }
at assertPath (path.js:8:11)
at Object.posix.resolve (path.js:426:5)
at Object.<anonymous> (/Users/samirshah/Desktop/nuskin-chai/karma.conf.js:3:18)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.parseConfig (/usr/local/lib/node_modules/karma/lib/config.js:284:22)
at new Server (/usr/local/lib/node_modules/karma/lib/server.js:57:20)
at Object.exports.run (/usr/local/lib/node_modules/karma/lib/cli.js:243:7)
at Object.<anonymous> (/usr/local/lib/node_modules/karma/bin/karma:3:23)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Function.Module.runMain (module.js:441:10)
at startup (node.js:139:18)
at node.js:968:3
weboack.config.js
entry: {
vendor: ["jquery", "angular"],
bundle: ['babel-polyfill', './src/app.js'],
},
package.json
"scripts": {
"dev": "webpack-dev-server --inline --port 3000 --content-base public/",
"build": "webpack",
"lint": "eslint src/ ; true",
"test": "NODE_ENV = testkarma start"
},
Build и dev работают нормально, но модульное тестирование бросает ошибку. Я проверил, что у моего файла karma.conf.js нет проблем.
Я была такая же проблема. В моем конфигурационном файле karma у меня было что-то вроде этого:
var path = require('path');
var webpackConfig = require('./webpack.config');
var entry = path.resolve(webpackConfig.context, webpackConfig.entry);
...
И проблема в том, что webpackConfig.entry
в моем файле webpack.config.js был объектом, а не строкой (следовательно, сообщение "Path должно быть строкой").
Надеюсь, это поможет, ура!