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


104

私はjavascript test-runner "Mocha"を使用しています。

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

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

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

編集:

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

関連するメモ:console.logEclipseデバッガーをnode.jsに接続するのに多くの問題を抱えているので、使用したいと思います。

これが難しいと思うのは私だけですか?どうやってnode.jsをデバッグしますか?デバッガを使って、それともconsole.logステートメントを使って?


お得!:)現在、私はまだmocaテストを介してノードを「デバッグ」しています。近い将来、ここでいくつかのオプションを評価したいと思うかもしれません。stackoverflow.com
Zach Bonham

Node.jsにEclipseを使用しないことをお勧めします。実際には、IMOを使用するのに最適な環境ではありません。JetBrainsのWebStormは優れたNode.js IDEですが、費用はかかります。あなたが無料で探しているなら、私は本当に新しいVisual Studio Codeを気に入っています。これは、NodeデバッグやNode開発をすばらしいものにするための優れた組み込みサポートを備えています。
dsw88

@ dsw88-私のWebStormでの経験は、ファイル構造が大きくて深くなり始めると、速度が大幅に低下することです。Javaアプリの昔を思い出しました。
kirk.burleson

2
@ dsw88が書いたものに加えて:VSコードを使用する:「デバッガ;」を挿入します。コードのどこかにステートメント。--inspect-brkオプションを使用してテストを開始し、VS Codeデバッグアクション「NodeJs attach」を使用します。デバッガーはモカスクリプトの最初の行から開始し、[再開]を1回押す必要があります。次回は「デバッガ」。ステートメントに達したなら、あなたは行ってもいいです。
FabianTe 2018年

回答:


49

どのモカオプションを使用していますか?

多分それは使用されているレポーター(-R)またはui(-ui)と関係がありますか?

console.log(msg);

テスト実行中は問題なく動作しますが、少し間抜けに混ざることもあります。おそらくテスト実行の非同期性によるものです。

ここに私が使っているオプション(mocha.opts)があります:

--require should
-R spec
--ui bdd

うーん.. mocha.optsなしでテストされただけでconsole.logまだ動作します


4
log()は実際にはどこにたくさんありますか?
PositiveGuy

32

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


20

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


2
うん、それは私の問題でした、これを提案してくれてありがとう。失敗する.expectの前にコンソールログを移動しましたが、現在表示されています。
redfox05

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.