2

{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.

    })
}
4

0 に答える 0