2016-08-08 18 views
0

ユニットテストを実行してコードカバレッジレポートを生成するために、Node.jsのMochaとともにIstanbulを使用しようとしています。私はユニットテストを実行し、それらのコードレポートを生成するために次のコードを使用しています。Node.jsイスタンブール/モカユニットテストで詳細が表示されない

istanbul cover _mocha -- -R tap 'test/*.test.js' > test.tap; istanbul report clover 

単なるコードカバレッジレポートを使用しない単体テストを実行したい場合は、次のコマンドを実行するだけです。

mocha 

これらの方法はどちらも問題なく動作します。 最初の方法では、コンソールには何も印刷されません。どのユニットテストが現在実行されているのか分かりません。何が完全になったら、何が間違っていたのか分かりません。エラーログなどの形式は提供されません。 2番目の方法では、各テストの後に特定のユニットテストのステータスが表示されるので、現在作業しているユニットテストをコンソールで簡単に確認できます。すべてのテストが完了したら、失敗した理由デバッグを開始できます。最初の方法はこれを提供しません。

イスタンブールを使用してコードカバレッジレポートを生成するには、とにかく、mochaを実行しているすべての詳細をコンソールに出力する必要がありますか。もしそうなら、私はこれをどのように達成できますか?私のテストの中には、実行と終了に少し時間がかかるものがありますので、イスタンブールでコードカバレッジレポートを生成する際には、現在どのテストが行​​われているのかをリアルタイムで確認してみてください。

答えて

1

コンソール上でそれを見に行くされていませんので、ごistanbulコマンドは、test.tapに出力をリダイレクトします。

istanbul cover _mocha -- -R tap 'test/*.test.js' > test.tap; istanbul report clover 
               ^^^^^^^^^^ 

削除できるようtest.tapのテスト出力は、イスタンブールによって必要とされていませんリダイレクション。コマンドでファイルの書き込みを続行する場合は、teeコマンドを使用して、テスト出力をファイルとコンソールの両方に書き込むことができます。

+0

すごいです!本当にありがとう。コードを 'istanbul cover _mocha -R tap 'test/*。test.js'に変更する|ティーテスト。イスタンブール報告書クローバー 'が効いているようだ。それでも、「モカ」を走らせるだけでは悲しいことではないほど詳細を与えるようなことはありません。 'mocha'という形式でコンソールに出力してほしい。しかたがない。再度、感謝します。 –

+0

あなたは 'tap'レポーターを使う必要はありません。 '-R tap '部分を省いて、' mocha'コマンドと同じ出力を得るべきです。 – cartant

+0

私は完全に理解していないいくつかの奇妙なJenkinsプラグインを使用しています。私は彼らがタップファイルを必要とすると確信しています。 –

1

これを試してみてください:https://github.com/glenjamin/mocha-multi

モカ-multiがprocess.stdoutと記者はそのことをやっている時はいつでも process.stderrの値を変更し続けます。

を実行し、この: istanbul cover _mocha -- --recursive --reporter mocha-multi --reporter-options list=-,tap=test.tap 'test/*.test.js' && istanbul report clover

関連する問題