web-dev-qa-db-ja.com

カルマランナースイートから合格したテストのリストを取得するにはどうすればよいですか?

Webappでkarmaを実行すると、合格したテストのような一般的なメッセージのみが表示されます-合格したテストのリストを取得する方法はありますか?より詳細な出力を取得するにはどうすればよいですか?

これはドキュメントのどこにもありません。

40
Amit Erandole

私はこれがどのようにできるか知っています!

Karmaの端末出力は、レポーターと呼ばれるオブジェクトから取得されます。 Karmaには、レポーターがいくつか組み込まれています(karma/lib/reportersにあります)。 Karmaは、カスタムレポーターを使用することもできます。

プロジェクトのkarma.config.jsファイルで使用するレポーターを指定できます。

たとえば、「ドット」レポーターは、各テストに合格するとドットを出力します。

reporters: ['dots'],

「進行中」レポーターはドットより多くを印刷します:

reporters: ['progress'],

カスタムレポーター karma-spec-reporter は、テストが成功または失敗したとき(ただし、それ以外のことはほとんどない)、各テストの名前を出力します。

reporters: ['spec'],

Karma-junit-reporter、karma-spec-reporter、および含まれるレポーターはニーズを満たさない可能性があるため、独自のレポーターを展開することをお勧めします。

この場合、karma-spec-reporterをカスタマイズするのが最良のオプションであると推測しています。テストが成功するとすでに行が出力されるからです。

さらに簡単なものを探しているなら、 here は私が作成したカスタムレポーターです。端子の色なしで、合格および不合格のテストを報告します。

50
benshope

Karma Spec Reporterをお勧めします。これにより、このようなきれいな単体テストレポートが得られます。

Karma unit test spec

どうやって使うのですか:

  1. Karma Spec Reporterをインストールする

プロジェクトのコマンドラインで、

npm install karma-spec-reporter --save-dev

  1. Karma Spec Reporterを構成に追加します

karma.conf.js

...
  config.set({
  ...
    reporters: ["spec"],
    specReporter: {
      maxLogLines: 5,         // limit number of lines logged per test
      suppressErrorSummary: true,  // do not print error summary
      suppressFailed: false,  // do not print information about failed tests
      suppressPassed: false,  // do not print information about passed tests
      suppressSkipped: true,  // do not print information about skipped tests
      showSpecTiming: false // print the time elapsed for each spec
    },
    plugins: ["karma-spec-reporter"],
  ...

以上です。楽しい。

37
Matt

このプラグインをkarma 0.9.0以降で使用します

https://github.com/mlex/karma-spec-reporter

7
Satshabad

テスト仕様にログを追加できます。 log4js-nodeをチェックアウトします。

https://github.com/nomiddlename/log4js-node

1
grant