

jestのsilentはCLIから一時的に解除できる
この記事は、構成と文章の整理にAIを使っています。
あくまで読みやすくするための補助で、内容そのものをAIにすべて任せて書いているわけではありませんが、ところどころ相談しながら整えています。
package.jsonのtestスクリプトに--silentが付いてると、デバッグ中にconsole.logが全部消されて困ることがある。設定を書き換えずにその場だけ解除する方法があったのでメモ。
結論
--no-silentをCLIから渡せばいい。
npx jest --no-silentnpmスクリプト経由なら--を挟んで渡す。
npm test -- --no-silentyarn test --no-silent--silent=falseでも同じ効果。
なぜ動くか
jestのCLIはyargsベースで、bool系オプションは--no-<flag>で明示的に反転できる。jestのメンテナも「--no-silentは動くはず、動かなければバグ」とissueで回答してるので、公式に想定された使い方らしい。
ハマりどころ
npmスクリプトを二重にネストしてると効かないことがある。たとえばtest:silentスクリプト自体がjest --silentを含んでいて、それをさらにnpm run test:silent -- --no-silentのように上書きしようとするパターン。
Jest 25.1.0以降でこの挙動に関する不具合報告(jestjs/jest#9517)があって、期待通りにsilent: falseへ反転しない。直接jest --no-silentやnpx jest --no-silentを叩く分には問題なかった。
回避策としては、silentを付けないバージョンのスクリプトを別に用意しておくのが手っ取り早い。
{ "scripts": { "test": "jest --silent", "test:verbose": "jest" }}