大規模な JS アプリのテスト - 複数の karma.conf.js ファイルを回避する 質問する

大規模な JS アプリのテスト - 複数の karma.conf.js ファイルを回避する 質問する

私が使うカルマ+ジャスミン+ファントムヘッドレス JavaScript テスト用。

私が抱えている問題は、テストしたい JS モジュールが多数含まれた非常に大きなアプリがあることです。したがって、ケースごとにカスタム モックとカスタム インクルードが必要になります。

karma.conf.jsfilesすべてのファイルのパターンで構成される配列のみを含めることができます。これは、アプリが小さく、大量のファイルやモジュールを含む大きなアプリではない場合に最適です。

私の解決策今のところ、karma.conf.jsテストケースごとに複数のファイルを作成します。しかし、設定ファイルが多すぎると肥大化してしまい、1つの設定を変更したい場合(オートウォッチ) すべての設定ファイルを変更する必要があります。

私の他の解決策karma.conf.js-追加のパラメータ(設定ファイルの検索で Karma をバイパスするための仕様ファイルまたはフォルダー)を処理するために、カスタム ハンドラーを前に記述し、files配列を動的に構築します。

ここで問題になるのは、カルマは一度しか実行されず、テスト仕様を1つしか実行できないことです...そしてカルマそのものを変えたくない

私も使用を検討しましたうなり声しかし、複数のテストケースで動作させる方法が見つかりませんでした。

ちなみに、私の理想的な構造は次のようになります。

ファイルを持つ:

test/specs/category/unit1_spec.js
test/mocks/category/unit1_mock.js

設定ファイル:

files: [
  {
    'includes': [array_of_includes],
    'spec': 'spec_file'
  }
]

モック ファイルは適切な mocks ディレクトリから自動的に取得されます。

こうするとkarma start test/specs/category、フォルダー内のすべてのテスト ケースが再帰的に実行されます。

要約: 大きなアプリを快適にテストしたい。

よろしくお願いしますどれでもこのタスクを処理するための提案。

ベストアンサー1

ENV 変数を使用して、karma.conf.js 内のファイルに引数を渡します。

files: [
  include1, include2, ..., includeN,
  process.env.JS_TESTS + "/*.js"
]

次に、次のように karma を実行します。

JS_TESTS=test/category2 karma start karma.conf.js

おすすめ記事