web-dev-qa-db-ja.com

MochaでJavaScriptをテストする-console.logを使用してテストをデバッグするにはどうすればよいですか?

私はjavascriptのテストランナー「Mocha」を使用しています。

失敗したテストがあるので、console.logを使用してデバッグします。

ただし、テストを実行すると、出力はありません(Mochaからのテスト結果のみ)。 Mochaがconsole.log出力をキャプチャして抑制したようです。

Mochaに出力を表示させるにはどうすればよいですか? (失敗したテストの場合)?

編集:

大変申し訳ありません! — console.logはテスト中に動作します!私はそれが出力を抑制することを期待していたに違いなく、私は自分のコードを適切にチェックしませんでした。返信いただきありがとうございます。だから...言われている...多分それは実際に合格するテストの出力を抑制するのはいいだろうか?うーん...

関連する注意事項:console.logを使用したいのは、Eclipseデバッガーをnode.jsに接続しようとすると多くの問題が発生するためです。

このトリッキーなことに気づいたのは私だけですか? node.jsをどのようにデバッグしますか?デバッガーで、またはconsole.logステートメントで?

98
Nick Perkins

使用しているMochaオプションは何ですか?

レポーター(-R)またはui(-ui)が使用されていることと関係があるのでしょうか?

console.log(msg);

テスト実行中は正常に機能しますが、少し間抜けな場合もあります。おそらくテスト実行の非同期の性質によるものです。

私が使用しているオプション(mocha.opts)は次のとおりです。

--require should
-R spec
--ui bdd

Hmm..mocha.optsなしでテストされたばかりで、console.logは引き続き機能します。

48
Zach Bonham

非同期コードをテストする場合は、done()をその非同期コードのコールバックに配置する必要があります。 REST AP​​Iへのhttpリクエストをテストするときに問題が発生しました。

32
Kevin C.

また、失敗してキャッチされなかった期待値の後にconsole.logを配置した可能性があるため、ログ行は実行されません。

18
qix