web-dev-qa-db-ja.com

Jestはconsole.logステートメントを飲み込みますか?これを変更する方法はありますか?

ジェストは飲み込みますかconsole.log出力?

// __tests__/log.test.js

it('logs', () => {
  console.log('hey') // expect to see "hey" printed in terminal
})

// terminal output
$ jest --forceExit
PASS  __tests__/log.test.js
✓ logs (1ms) # where's "hey"?

私が気にする主な理由は、非同期のbeforeAllafterAllを書いているので、console.logステートメントを使用してイベントの順序をデバッグすることです。

21
Joseph Fraley

これは 継続中の問題 のようです。

Node 10.7.0およびJest 23.4.1、j_configにverbose: falseを追加すると( この提案による )がうまくいきました。

編集

Jest 23.6に移動したので、Tamlynの答えに従って、TERM=dumbを環境変数として渡す必要もあります。

10
Derek Hill

問題は、jest --forceExitを使用していたことです。 Jestのログモデルはすべてのログを保存し、後で吐き出します。 --forceExitは、プロセスがspit-out-logsポイントに到達する前に保釈します。

7
Joseph Fraley

Update:この問題は修正する必要があります Jest 24以降

現在のバグ--watchモードのテストに影響する別の部分的な解決策は、TERM=dumbを環境変数として渡すことです。

TERM=dumb jest --watch

これには、テストを実行する前にコンソールがクリアされないため、結果を確認するためにスクロールする必要があります。

7
Tamlyn