我使用Webpack进行了Karma设置。每当我修改测试文件或其任何依赖项时,都会运行所有测试。这一切都很好,但我真的很喜欢只运行最少数量的测试。如果我更改了测试文件,它应该只运行该测试文件。如果我更改源文件,它应该运行任何测试文件将该源文件作为依赖项(通过require
)。
这是我karma.config.js
的相关部分:
files: [
{
pattern: '**/*.test.js',
watched: true,
included: true,
served: true
},
],
preprocessors: {
'**/*.test.js': ['webpack']
},
webpack: {
resolve: {
root: path.join(__dirname, '..', 'webpack'),
extensions: ['', '.js', '.jsx'],
},
module: {
loaders: [
{
test: /.jsx?$/,
loader: 'babel-loader',
exclude: [/node_modules/],
query: {
presets: ['es2015', 'react']
}
},
]
},
},
完整的karma.config.js
文件为in a gist。
我熟悉other questions中提及的涉及process.env.npm_config_single_file
的解决方案,但这不是我想要做的事情。
根据我上面的配置,我希望它将每个文件作为一个单独的webpack来处理,这也是文档所暗示的 在webpack/karma-webpack的顶部。相反,我似乎得到的是一个包含两个块的单个webpack,每个日志:
Asset Size Chunks Chunk Names
employee_list_entry.test.js 1.07 MB 0 [emitted] employee_list_entry.test.js
employer_list_entry.test.js 1.07 MB 1 [emitted] employer_list_entry.test.js
chunk {0} employee_list_entry.test.js (employee_list_entry.test.js) 1.01 MB
即使只保存一个测试文件,它也会重建两个块。
答案 0 :(得分:0)
您可能希望应用Webpack的监视模式,而不是使用似乎仅限于执行所有文件的Karma监视模式:
https://webpack.js.org/configuration/watch/
另见Gulp和Grunt的以下相关问题: