2016-11-08 102 views
3

我已經有一個可用的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 

它總是重建兩個塊,即使我只能救一個測試文件。

+3

這裏有一個公開的問題:https://github.com/karma-runner/karma/issues/1507 我很驚訝地發現,當一個文件改變時運行所有測試就是Karma的工作方式。我想最長的時間,我們只是有一些奇怪的配置問題。去搞清楚! –

回答

相關問題