vueコンポーネントの単体テストを実行しようとしています。私は、vueファイルを読み込むためにbabelパーサーを使用しています。SyntaxError:karmaとwebpackでvueコンポーネントテストを実行中にエラーを解析します。
これは私のカルマ-configファイルである:これはUである
var path = require('path')
var webpack = require('webpack')
module.exports = {
entry: './main.js',
module: {
loaders: [
{
test: /\.vue$/,
loader: 'vue'
},
{
test: /\.js$/,
loader: 'babel',
include: [
path.join(__dirname, 'app'),
path.join(__dirname, 'test')
],
exclude: path.join(__dirname, 'node_modules')
}
]
}
}
:これは私のWebPACKの設定ファイルである
var webpackConfig = require('./webpack.config.js')
delete webpackConfig.entry
// karma.conf.js
module.exports = function (config) {
config.set({
browsers: ['PhantomJS'],
frameworks: ['jasmine'],
// this is the entry file for all our tests.
files: ['test/index.js'],
// we will pass the entry file to webpack for bundling.
preprocessors: {
'test/index.js': ['webpack']
},
// use the webpack config
webpack: webpackConfig,
// avoid walls of useless text
webpackMiddleware: {
noInfo: true
},
singleRun: true
})
}
NITテストファイル:
// test/component-a.spec.js
var Vue = require('vue')
var ComponentA = require('./a.vue')
describe('a.vue', function() {
// asserting JavaScript options
it('should have correct message', function() {
expect(ComponentA.data().msg).toBe('Hello from Component A!')
})
// asserting rendered result by actually rendering the component
it('should render correct message', function() {
var vm = new Vue({
template: '<div><test></test></div>',
components: {
'test': ComponentA
}
}).$mount()
expect(vm.$el.querySelector('h2.red').textContent).toBe('Hello from Component A!')
})
})
そのこのパースエラーを投げ、-> karma start karma.conf.js
を使用してテストを実行する場合:
14 11 2016 19:15:36.808:INFO [karma]: Karma v1.3.0 server started at http://localhost:9876/
14 11 2016 19:15:36.812:INFO [launcher]: Launching browser PhantomJS with unlimited concurrency
14 11 2016 19:15:36.873:INFO [launcher]: Starting browser PhantomJS
14 11 2016 19:15:40.126:INFO [PhantomJS 1.9.8 (Mac OS X 0.0.0)]: Connected on socket /#8Hrp1VoJHm1Y6JW9AAAA with id 58972703
PhantomJS 1.9.8 (Mac OS X 0.0.0) ERROR
SyntaxError: Parse error
at test/index.js:6341
index.js( ''、trueの場合、/\.spec$/)のみVAR testsContext = require.contextが含まれてい testsContext.keys()。forEachの(testsContext) –
index.jsには6341行がない –
ああ私の推測は、2つのうちの1つになります.Webpackは、パッケージング後に6341以上の行を含むファイルを作成し、index.js(Webpackedファイルを確認して確認したもの)と呼んだり、末尾に構文エラーがあります空の行が何らかの理由で新しい行として解析される原因となっているファイルの(おそらく)。それらが私が最初に確認するものです。 –