Karma を使用して ES6 コードをテストしています。ミックスに追加karma-coverage
するときは、有効なレポートを作成するためにカバレッジ ツールのすべてのソース ファイルを追加する必要がありますが、そうすると、すべてのブラウザーで Karma から次のエラーが表示されます。
PhantomJS 1.9.8 (Mac OS X 0.0.0) エラー
エラー: 不変違反: _registerComponent(...): ターゲット コンテナーは DOM 要素ではありません。
/var/folders/55/9_128mq95kz1q_2_vwy7qllw0000gn/T/41cf272955d73fbba8ad1df941172139.browserify:46444:0 <- ../../node_modules/react/lib/invariant.js:49:0 で
私の Karma 設定ファイルは次のとおりです。
basePath: '',
browserNoActivityTimeout: 100000,
frameworks: ['phantomjs-shim', 'mocha', 'chai', 'browserify'],
files: [
'./client/**/*.js',
'./client/**/*.spec.js'
],
exclude: [
'./client/dist/*.js',
],
preprocessors: {
'./client/**/*.js': ['browserify', 'sourcemap', 'coverage']
},
browserify: {
debug: true,
transform: [
['babelify', {
optional: ["runtime"],
plugins: ["rewire"]
}],
]
},
coverageReporter: {
instrumenters: { isparta : require('isparta') },
instrumenter: {
'**/*.js': 'isparta'
},
type : 'html',
dir : './coverage/'
},
reporters: ['mocha', 'coverage'],
port: 9876,
colors: true,
logLevel: config.LOG_INFO,
autoWatch: false,
browsers: ['Chrome', 'Firefox', 'Safari', 'PhantomJS'],
singleRun: true
'./client/**/*.js',
配列から削除するfiles
と、テストは機能しますが、カバレッジにはテスト コードしか表示されません。gulp の Karma を で使用しgulp-karma
ていますが、これは問題とは関係ないと思います。