我已經有一個可用的Karma安裝程序,使用Webpack。每當我修改測試文件或其任何依賴項時,全部的測試運行。這一切都很好,但我真的很喜歡它只運行最少數量的測試。如果我更改測試文件,它應該只運行該測試文件。如果我更改源文件,它應該運行任何測試文件將該源文件作爲依賴關係(通過require
)。使用Karma使用Webpack只運行單個更改的測試文件
這裏是我的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
它總是重建兩個塊,即使我只能救一個測試文件。
這裏有一個公開的問題:https://github.com/karma-runner/karma/issues/1507 我很驚訝地發現,當一個文件改變時運行所有測試就是Karma的工作方式。我想最長的時間,我們只是有一些奇怪的配置問題。去搞清楚! –