web-dev-qa-db-ja.com

Karma:コマンドラインから単一のテストファイルを実行する

だから、私はこれを探していましたが、ここで「類似した」答えを見つけましたが、正確には私が望んでいるものではありません。

今、カルマで単一のファイルをテストしたい場合、問題のファイルでfit()fdescribe()を実行する必要があります...

しかし、私がしたいのは、設定ファイルでkarmaを呼び出して特定のファイルに転送できるようにすることです。したがって、ファイルを変更する必要はまったくありません。

karma run --conf karma.conf.js --file /path/to/specific/test_file.js

これを行うことは可能ですか?またはヘルパーと一緒に? (うなり声か一気飲みですか?)

83
Gonçalo Vieira

まず、karmaサーバーを起動する必要があります

karma start

次に、grepを使用して特定のテストをフィルタリングしたり、ブロックを記述したりできます。

karma run -- --grep=testDescriptionFilter
51
bvaughn

--filesはサポートされなくなりましたが、env変数を使用してファイルのリストを提供できます。

// karma.conf.js
function getSpecs(specList) {
  if (specList) {
    return specList.split(',')
  } else {
    return ['**/*_spec.js'] // whatever your default glob is
  }
}

module.exports = function(config) {
  config.set({
    //...
    files: ['app.js'].concat(getSpecs(process.env.KARMA_SPECS))
  });
});

次に、CLIで:

$ env KARMA_SPECS="spec1.js,spec2.js" karma start karma.conf.js --single-run
14

このオプションは、karmaの最近のバージョンではサポートされなくなりました。

https://github.com/karma-runner/karma/issues/1731#issuecomment-174227054 を参照してください

ファイルの配列は、CLIを使用して次のように再定義できます。

karma start --files=Array("test/Spec/services/myServiceSpec.js")

またはエスケープ:

karma start --files=Array\(\"test/Spec/services/myServiceSpec.js\"\)

参考文献

6
Paul Sweatte