{included: true} ファイル (私の場合は karma-test-shim.js のみ) のテスト カバレッジ結果のみを取得します。SystemJs は karma-test-shim にテスト ファイルをロードすることになっているため、テスト ファイルを {included: true} にできません。テスト ファイルを {include: true} にしようとすると、「匿名のシステム レジスタ呼び出しは許可されていません」というエラーが発生します。私のテストは {included: false} で正常に実行されます。SystemJS を使用してテスト ファイルを karma-test-shim にロードし、テスト ファイル {included: false} を作成することは、angular2-quickstart リポジトリを含む Angular 2 github リポジトリが続く標準形式です。
私は tsconfig.json ファイルで "commonjs" の代わりに "system" をモジュール形式として使用し、Chrome の代わりに (karma-electron NPM パッケージを介して) Electron ブラウザーを使用し、1 行の Electron require shim in the karma- を使用します。karma .loaded 行の上にある test-shim ファイル- これらすべてを組み合わせることで、fs、パス、またはインストールされたモジュールなどのノード モジュールの "require" を、事前にバンドルせずにテストで機能させることができます。私のアプリケーションは、Electron と Angular 2 を使用したデスクトップ アプリケーションです。
これらの違いは別として、 https: //github.com/juliemr/ng2-test-seed とまったく同じテスト セットアップ (karma.conf.js および karma-test-shim.js) を使用しています。
これが私の基本的な karma.conf.js ファイルです。
module.exports = function(config) {
config.set({
basePath: 'src/', // all the files in the files config parameter, are searched for relative to this path
frameworks: ['jasmine'],
files: files, // the files parameter exported from another file
preprocessors: {'*.js': ['coverage']},
reporters: ['spec', 'coverage'], //report to console
port: 9876,
colors: true,
browsers: ['Electron'],
singleRun: false // true is necessary for CI. Set to false so the browser is on long enough to debug.
})
}