Phantomjs 网页包dllplugin如何与karma一起使用?
我试图在我的业力测试中使用Phantomjs 网页包dllplugin如何与karma一起使用?,phantomjs,webpack,karma-runner,karma-mocha,Phantomjs,Webpack,Karma Runner,Karma Mocha,我试图在我的业力测试中使用DLLReferencePlugin,但我不完全确定如何让它工作 我将vendors.js和vendors manifest.json放在src/static/ dll是用libraryTarget=var生成的,它可以在我的开发和生产网页包版本中工作。我的开发/生产版本使用一个html文件,该文件的根路径上有一个指向“vendors.js”的脚本标记。开发/生产构建将静态文件夹中的所有文件复制到目标文件夹。因此,脚本标记可以找到vendors.js 但是,我从Phan
DLLReferencePlugin
,但我不完全确定如何让它工作
我将vendors.js
和vendors manifest.json
放在src/static/
dll是用libraryTarget=var
生成的,它可以在我的开发和生产网页包版本中工作。我的开发/生产版本使用一个html文件,该文件的根路径上有一个指向“vendors.js”的脚本标记。开发/生产构建将静态文件夹中的所有文件复制到目标文件夹。因此,脚本标记可以找到vendors.js
但是,我从PhantomJS得到一个错误:ReferenceError:在运行测试时找不到变量:vendors
。我想知道它是否找不到vendors.js
script标签
如果karma配置来自DLL插件,如何在karma配置中使用vendors.js
我对因果报应还不熟悉,所以任何指导都将受到极大的赞赏
我尝试了很多没有结果的事情,包括在我的测试条目文件中放入require('vendors.js')
,使用resolve别名将供应商的externals设置为true,但由于我对karma知之甚少,所以感觉我几乎是在黑暗中拍摄。因此,任何帮助都将不胜感激
我的业力配置如下。这来自我正在使用的。我的测试文件与初学者工具包中的测试文件相同。如果您需要任何其他信息来帮助,请告诉我。谢谢
const karmaConfig = {
basePath : '../', // project root in relation to bin/karma.js
files : [
{
pattern : `./test-bundler.js`,
watched : false,
served : true,
included : true
}
],
singleRun : !argv.watch,
frameworks : ['mocha'],
reporters : ['mocha'],
preprocessors : {
[`/test-bundler.js`] : ['webpack']
},
browsers : ['PhantomJS'],
webpack : {
devtool : 'cheap-module-source-map',
resolve : Object.assign({}, webpackConfig.resolve, {
alias : Object.assign({}, webpackConfig.resolve.alias, {
sinon : 'sinon/pkg/sinon.js'
})
}),
plugins : webpackConfig.plugins,
module : {
noParse : [
/\/sinon\.js/
],
loaders : webpackConfig.module.loaders.concat([
{
test : /sinon(\\|\/)pkg(\\|\/)sinon\.js/,
loader : 'imports?define=>false,require=>false'
}
])
},
// Enzyme fix, see:
// https://github.com/airbnb/enzyme/issues/47
externals : Object.assign({}, webpackConfig.externals, {
'react/addons' : true,
'react/lib/ExecutionEnvironment' : true,
'react/lib/ReactContext' : 'window'
})
},
webpackMiddleware : {
noInfo : true
},
coverageReporter : {
reporters : config.coverage_reporters
}
}
if (config.globals.__COVERAGE__) {
karmaConfig.reporters.push('coverage')
karmaConfig.webpack.module.preLoaders = [{
test : /\.(js|jsx)$/,
include : new RegExp(config.dir_client),
loader : 'babel',
query : Object.assign({}, config.compiler_babel, {
plugins : (config.compiler_babel.plugins || []).concat('istanbul')
})
}]
}
回答我自己的问题。。Jeeze有时候只需要看一些文件 我把它放在karma配置的文件条目中:
files: [{
pattern : `./src/static/vendors.js/`,
watched : false,
served : true
},
...]